Slik flytter du alle e-poster i en Outlook PST-fil til en bestemt mappe via VBA

Hvis du ønsker å flytte alle e-poster i en PST-fil til en bestemt mappe i en annen PST-fil, kan du bruke metoden som er introdusert i denne artikkelen. Det vil lære deg hvordan du bruker VBA for raskt å få det.

Noen ganger, av noen grunner, kan det hende du må flytte alle e-poster i en bestemt PST-fil til en bestemt mappe i en annen PST-fil. I dette tilfellet, hvis du gjør det manuelt, vil det uten tvil være ganske plagsomt. Derfor vil vi her lære en rask metode, som vil bruke VBA til å gå gjennom alle mappene i en bestemt PST-fil og flytte hver e-post til en bestemt mappe. Les videre for å oppnå de forseggjorte trinnene og kodene.

Batch-flytt alle e-poster i en Outlook PST-fil til en bestemt mappe

Batch-flytt alle e-poster i en Outlook PST-fil til en bestemt mappe

  1. Start Outlook-applikasjonen helt i begynnelsen.
  2. Deretter kan du bytte til "Utvikler"-fanen og klikke på "Visual Basic" -knappen. Eller trykk på "Alt + F11"-snarveier.
  3. Deretter åpner du en modul som ikke er i bruk i popup-vinduet for VBA-redigering eller setter inn en ny.
  4. Kopier og lim deretter inn følgende VBA-koder i denne modulen.
Private Sub GetAllFolders()
    Dim objFolders As Outlook.Folders
    Dim objFolder As Outlook.Folder
 
    'Get all the folders in a specific PST file
    Set objFolders = Outlook.Application.Session.Folders("Personal").Folders
 
    For Each objFolder In objFolders
        Call MoveEmails(objFolder)
    Next
End Sub
 
Private Sub MoveEmails(ByVal objFolder As Outlook.Folder)
    Dim objTargetFolder As Outlook.Folder
    Dim objSubFolder As Outlook.Folder
    Dim i As Long
    Dim objMail As Outlook.MailItem
 
    'Get the specific destination folder
    'You can change it as per your case
    Set objTargetFolder = Outlook.Application.Session.Folders("John Smith").Folders("New")
 
    If objTargetFolder Is Nothing Then
       Set objTargetFolder = Outlook.Application.Session.Folders("John Smith").Folders.Add("New")
    End If
 
    'Move each emails in the folder to the destination folder
    For i = objFolder.Items.Count To 1 Step -1
        If objFolder.Items.Item(i).Class = olMail Then
           Set objMail = objFolder.Items.Item(i)
           objMail.Move objTargetFolder
        End If
    Next i
 
    'Process the subfolders in the folder recursively
    If (objFolder.Folders.Count > 0) Then
       For Each objSubFolder In objFolder.Folders
           Call MoveEmails(objSubFolder)
       Next
    End If
End Sub

VBA-koder - Batchflytt alle e-poster i en Outlook PST-fil til en bestemt mappe

  1. Deretter endrer du Outlook-makrosikkerhetsnivået til lavt.
  2. Til slutt kan du kjøre den nye makroen ved å klikke på "Kjør"-ikonet i verktøylinjen eller trykke på "F5"-tasten.
  3. På en gang vil alle e-postene til alle mappene i en bestemt mappe bli flyttet til den forhåndsbestemte mappen i grupper.

Redd PST-dataene dine i tide

Hvis du dessverre lider PST skade, hva vil du gjøre da? Generelt må du først tenke på å få tilbake de kompromitterte PST-dataene så snart som mulig. Som vanlig er den enkleste måten å gjenopprette fra en oppdatert sikkerhetskopi av data. Men hvis sikkerhetskopien av data er flere uker gammel, kan den være ubrukelig. I dette tilfellet har du ikke noe annet valg enn å gå tilbake til et potent gjenopprettingsverktøy, som f.eks DataNumen Outlook Repair.

Forfatterintroduksjon:

Shirley Zhang er en datagjenopprettingsekspert innen DataNumen, Inc., som er verdensledende innen datagjenopprettingsteknologier, inkludert mdf-fiks og Outlook-reparasjonsprodukter. For mer informasjon besøk www.datanumen. Med

Kommentarer er stengt.