如果您想将一个 PST 文件中的所有电子邮件移动到另一个 PST 文件中的特定文件夹,您可以使用本文介绍的方法。 它将教你如何使用VBA快速搞定。
有时,出于某些原因,您可能需要将特定 PST 文件中的所有电子邮件移动到另一个 PST 文件中的特定文件夹。 这种情况下,如果你手动去做,无疑是相当麻烦的。 因此,在这里我们将教一个快速的方法,即使用VBA循环遍历某个PST文件中的所有文件夹,并将每封电子邮件移动到特定文件夹。 继续阅读以实现详细的步骤和代码。

将 Outlook PST 文件中的所有电子邮件批量移动到特定文件夹
- 首先,启动您的 Outlook 应用程序。
- 然后你可以切换到“开发人员”选项卡并单击“Visual Basic”按钮。 或者按“Alt + F11”快捷键。
- 随后,在弹出的VBA编辑器窗口中,打开一个不用的模块或者直接插入一个新的模块。
- 接下来将以下 VBA 代码复制并粘贴到此模块中。
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
- 之后,将您的 Outlook 宏安全级别更改为低。
- 最后,您可以通过单击工具栏中的“运行”图标或按“F5”键来运行新宏。
- 一次,特定文件夹中所有文件夹的所有邮件将被批量移动到预定文件夹。
及时拯救您的 PST 数据
如果你不幸遭遇 PST损坏,那你会怎么做? 通常,您首先想到的是尽快取回受损的 PST 数据。 与往常一样,最简单的方法是从最新的数据备份中恢复。 但是,如果数据备份已有数周之久,则可能毫无用处。 在这种情况下,您别无选择,只能重新使用强大的恢复工具,例如 DataNumen Outlook Repair.
作者简介:
Shirley Zhang 是一位数据恢复专家 DataNumen, Inc.,它是数据恢复技术领域的世界领先者,包括 中密度纤维板修复 和 outlook 修复软件产品。 欲了解更多信息,请访问 datanumen.com
