默认情况下,在 Outlook 中,当您删除文件夹时,其项目也会移动到“已删除项目”文件夹中。 如果您希望 Outlook 在删除文件夹之前自动将文件夹中的项目移动到其父文件夹,您可以使用本文分享的方法。
当您删除文件夹时,Outlook 会警告您其所有内容也将移至“已删除邮件”文件夹。 但是,米ost 有时,您只是想删除此文件夹,而不包括其中存储的项目。 因此,您希望项目能够自动移动到该文件夹的父文件夹中。 下面教大家如何用VBA实现。 如果你对VBA一窍不通,可以先看看我之前的文章——》如何在 Outlook 中运行 VBA 代码“。
删除前自动将文件夹中的项目移动到其父文件夹
- 首先,通过“Alt + F11”访问 Outlook VBA 编辑器。
- 然后,在新窗口中,打开“ThisOutlookSession”项目。
- 随后,将以下 VBA 代码复制并粘贴到该项目中。
'Display the macro in the context menu
Sub Application_FolderContextMenuDisplay(ByVal CommandBar As Office.CommandBar, ByVal Folder As Outlook.Folder)
Dim objCommandBarButton As Office.CommandBarButton
Set objCommandBarButton = CommandBar.Controls.Add(msoControlButton)
With objCommandBarButton
.Style = msoButtonIconAndCaption
.Caption = "[Smart] Delete Folder"
.FaceId = 1668
.OnAction = "Project1.ThisOutlookSession.DeleteFolder_MoveItemsToParentFolder"
End With
End Sub
Sub DeleteFolder_MoveItemsToParentFolder()
Dim objCurrentFolder As Outlook.Folder
Dim objParentFolder As Outlook.Folder
Set objCurrentFolder = Outlook.ActiveExplorer.CurrentFolder
Set objParentFolder = objCurrentFolder.Parent
Dim i As Long
'Move items to parent folder
For i = objCurrentFolder.Items.Count To 1 Step -1
objCurrentFolder.Items.Item(i).Move objParentFolder
Next
'Delete the current folder
objCurrentFolder.Delete
End Sub
- 在那之后,你现在可以试一试了。
- 首先,右键单击要删除的子文件夹。
- 然后,从上下文菜单中选择“[智能]删除文件夹”选项。
- Outlook 将立即删除该文件夹并将其项目移动到其父文件夹。
- 在我的例子中,我删除了“To Bob”子文件夹。 它的父文件夹是“已发送邮件”。 因此,它的所有项目都被移动到“已发送项目”中,如下图所示。
请记住,Outlook 是脆弱的
您应该牢记一个毋庸置疑的事实——Outlook 容易出错或损坏。 因此,您必须提防 Outlook 数据文件周围的所有潜在威胁,包括病毒、不正确退出等。 另外,你最好准备一个强大可靠的Outlook修复工具,比如 DataNumen Outlook Repair. 它可以帮助您 修复Outlook 几分钟内解决问题
作者简介:
Shirley Zhang 是一位数据恢复专家 DataNumen, Inc.,它是数据恢复技术领域的世界领先者,包括 中密度纤维板修复 和 outlook 修复软件产品。 欲了解更多信息,请访问 datanumen.com



