Cómo mover por lotes todos los correos electrónicos en un archivo PST de Outlook a una carpeta específica a través de VBA

Comparte ahora:

Si desea mover todos los correos electrónicos de un archivo PST a una carpeta específica en otro archivo PST, puede utilizar el método presentado en este artículo. Le enseñará cómo usar VBA para obtenerlo rápidamente.

A veces, por algunas razones, es posible que deba mover todos los correos electrónicos de un archivo PST específico a una carpeta específica en otro archivo PST. En este caso, si lo hace manualmente, sin duda será bastante problemático. Por lo tanto, aquí le enseñaremos un método rápido, que usará VBA para recorrer todas las carpetas en un determinado archivo PST y mover cada correo electrónico a una carpeta específica. Siga leyendo para lograr los pasos y códigos elaborados.

Mover por lotes todos los correos electrónicos de un archivo PST de Outlook a una carpeta específica

Mover por lotes todos los correos electrónicos de un archivo PST de Outlook a una carpeta específica

  1. Desde el principio, inicie su aplicación Outlook.
  2. Luego puede cambiar a la pestaña "Desarrollador" y hacer clic en el botón "Visual Basic". O presione los atajos de teclas "Alt + F11".
  3. Posteriormente, en la ventana emergente del editor de VBA, abra un módulo que no esté en uso o inserte directamente uno nuevo.
  4. A continuación, copie y pegue los siguientes códigos VBA en este módulo.
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

Códigos VBA: mueva por lotes todos los correos electrónicos en un archivo PST de Outlook a una carpeta específica

  1. Después de eso, cambie su nivel de seguridad macro de Outlook a bajo.
  2. Finalmente, puede ejecutar la nueva macro haciendo clic en el icono "Ejecutar" en la barra de herramientas o presionando la tecla "F5".
  3. De una vez, todos los correos electrónicos de todas las carpetas en una carpeta específica se moverán a la carpeta predeterminada en lotes.

Rescata tus datos PST a tiempo

Si lamentablemente sufres Daño PST, ¿Qué harás entonces? En general, su primer pensamiento debe ser recuperar los datos PST comprometidos lo antes posible. Como de costumbre, la forma más sencilla es restaurar desde una copia de seguridad de datos actualizada. Sin embargo, si la copia de seguridad de los datos tiene varias semanas, puede ser inútil. En este caso, no tiene más remedio que recurrir a una potente herramienta de recuperación, como DataNumen Outlook Repair.

Introducción del autor:

Shirley Zhang es experta en recuperación de datos en DataNumen, Inc., que es el líder mundial en tecnologías de recuperación de datos, incluyendo arreglar mdf y productos de software de reparación de Outlook. Para más información visite www.datanumen.com

Comparte ahora:

Los comentarios están cerrados.