也许您有一个文件夹,其下有许多子文件夹。 如果您想重新整理其中的邮件,比如快速将这些子文件夹中的所有邮件移动到特定文件夹,您可以使用本文分享的方式。
有时,出于某些原因,您可能需要将电子邮件从一个文件夹的所有子文件夹批量移动到另一个文件夹,例如您想要重新分类电子邮件,因此这些子文件夹不再有用。 在这种情况下,将这些子文件夹一一处理就相当麻烦了。 因此,在这里我们将向您介绍另一种方式。

将电子邮件从一个文件夹的所有子文件夹批量移动到另一个文件夹
- 首先,启动 Outlook 程序。
- 然后,在 Outlook 主屏幕中,点击“Alt + F11”键按钮,这将带您进入 VBA 编辑器。
- 接下来,在新的“Microsoft Visual Basic for Applications”窗口中,您需要打开一个未使用的模块。
- 随后,将以下 VBA 代码复制并粘贴到该模块中。
Dim objTargetFolder As Outlook.folder
Sub BatchMoveEmailsFromSubfoldersToAnotherFolder()
Dim objSourceFolder As Outlook.folder
Dim objFolder As Outlook.folder
'Get the source folder whose subfolders to be processed
Set objSourceFolder = Application.Session.PickFolder
If Not (objSourceFolder Is Nothing) And objSourceFolder.DefaultItemType = olMailItem Then
If objSourceFolder.folders.count > 0 Then
'Select a target folder
Set objTargetFolder = Application.Session.PickFolder
If Not (objTargetFolder Is Nothing) Then
For Each objFolder In objSourceFolder.folders
Call ProcessFolders(objFolder)
Next
MsgBox "Move Completed!", vbExclamation
End If
Else
MsgBox "No subfolders!", vbExclamation
End If
End If
End Sub
Sub ProcessFolders(ByVal objFolder As Outlook.folder)
Dim i As Long
Dim objSubfolder As Outlook.folder
For i = objFolder.Items.count To 1 Step -1
'Move emails to the target folder
If objFolder.Items(i).Class = olMail Then
objFolder.Items(i).Move objTargetFolder
End If
Next
'Process subfolders recursively
If objFolder.folders.count > 0 Then
For Each objSubfolder In objFolder.folders
Call ProcessFolders(objSubfolder)
Next
End If
End Sub
- 之后,您可以运行此宏。
- 首先,在此宏窗口中,按“F5”键按钮。
- 然后,您将需要选择一个源文件夹,其子文件夹将被处理。
- 之后,您需要指定要将电子邮件移动到的目标文件夹。
- 随后,该宏将开始运行。运行完成后,您将收到一条提示“完成”的消息。
- 最终,您可以访问目标文件夹。您会发现源文件夹下所有子文件夹中的电子邮件都已转移到那里。
恢复受损的 Outlook 数据
尽管像其他电子邮件客户端一样拥有众多功能,但 Outlook 仍然无法避免损坏。 随着存储的数据越来越多,Outlook 将越来越容易出错和损坏。 因此,您需要随身携带一个强大的修复工具,例如 DataNumen Outlook Repair. 它专门设计用于 修复Outlook 问题。 因此,它可以毫不费力地扫描和恢复损坏的 Outlook 文件。
作者简介:
Shirley Zhang 是一位数据恢复专家 DataNumen, Inc.,它是数据恢复技术领域的世界领先者,包括 中密度纤维板恢复 和 outlook 修复软件产品。 欲了解更多信息,请访问 www.datKanumen.com

