Come spostare in batch tutte le e-mail in un file PST di Outlook in una cartella specifica tramite VBA

Condividi ora:

Se desideri spostare tutte le e-mail in un file PST in una cartella specifica in un altro file PST, puoi utilizzare il metodo introdotto in questo articolo. Ti insegnerà come utilizzare VBA per ottenerlo rapidamente.

A volte, per qualche motivo, potrebbe essere necessario spostare tutte le e-mail in un file PST specifico in una cartella specifica in un altro file PST. In questo caso, se lo fai manualmente, sarà senza dubbio piuttosto fastidioso. Pertanto, qui insegneremo un metodo rapido, che utilizzerà VBA per scorrere tutte le cartelle in un determinato file PST e spostare ogni e-mail in una cartella specifica. Continua a leggere per ottenere i passaggi e i codici elaborati.

Sposta in batch tutte le e-mail in un file PST di Outlook in una cartella specifica

Sposta in batch tutte le e-mail in un file PST di Outlook in una cartella specifica

  1. All'inizio, avvia la tua applicazione Outlook.
  2. Quindi puoi passare alla scheda "Sviluppatore" e fare clic sul pulsante "Visual Basic". Oppure premi i tasti di scelta rapida "Alt + F11".
  3. Successivamente, nella finestra popup dell'editor VBA, aprire un modulo non in uso oppure inserirne direttamente uno nuovo.
  4. Quindi copia e incolla i seguenti codici VBA in questo modulo.
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

Codici VBA: sposta in batch tutte le e-mail in un file PST di Outlook in una cartella specifica

  1. Successivamente, modifica il livello di sicurezza delle macro di Outlook su basso.
  2. Alla fine puoi eseguire la nuova macro facendo clic sull'icona "Esegui" nella barra degli strumenti o premendo il tasto "F5".
  3. Contemporaneamente, tutte le e-mail di tutte le cartelle in una cartella specifica verranno spostate nella cartella predeterminata in batch.

Salva i tuoi dati PST in tempo

Se purtroppo soffri Danno PST, cosa farai allora? In generale, il tuo primo pensiero deve recuperare i dati PST compromessi il prima possibile. Come al solito, il modo più semplice è ripristinare da un backup dei dati aggiornato. Tuttavia, se il backup dei dati ha diverse settimane, potrebbe essere inutile. In questo caso, non hai altra scelta che ricorrere a un potente strumento di recupero, come ad esempio DataNumen Outlook Repair.

Introduzione dell'autore:

Shirley Zhang è un'esperta di recupero dati in DataNumen, Inc., che è il leader mondiale nelle tecnologie di recupero dati, tra cui correzione del mdf e prodotti software di riparazione di Outlook. Per maggiori informazioni visita www.datanumen.com

Condividi ora:

I commenti sono chiusi.