如何在 Outlook 中快速合并多个文件夹中的项目而不重复

立即分享:

如果您想合并多个 Outlook 文件夹中的所有项目并确保没有重复,您可以使用本文介绍的方法。 它使用 VBA 代码来帮助您轻松完成它。

在 Outlook 中快速合并多个文件夹中的项目而不重复

有时,您可能希望合并多个 Outlook 文件夹中的项目,例如合并多个 Outlook 联系人文件夹中的所有联系人。 在这种情况下,如果这些文件夹中有一些重复的联系人,您一定希望在合并时自动删除重复的联系人。 在这种情况下,您可以使用下面的VBA代码轻松实现它。

合并多个文件夹中的项目而不重复

  1. 首先,启动 Outlook 应用程序。
  2. 然后,您应该通过在 Outlook 主屏幕中按“Alt + F11”键按钮来访问 Outlook VBA 编辑器。
  3. 接下来,在“Microsoft Visual Basic for Applications”窗口中,您需要打开一个未被使用的模块。
  4. 之后,您应该将以下 VBA 代码复制到此模块中。
'Here we take "merging two folders" as an example
Sub MergeOutlookFolders_WithoutDuplicates()
    Dim objSourceFolder As Outlook.Folder
    Dim objTargetFolder As Outlook.Folder
    Dim i, n, x As Long
    Dim objItem As Object
    Dim objDictionary As Object
    Dim strKey As String
 
    Set objSourceFolder = Application.Session.PickFolder
    Set objTargetFolder = Application.Session.PickFolder

    If objSourceFolder.DefaultItemType <> objTargetFolder.DefaultItemType Then
       MsgBox "Error: The two folders are not in same type!", vbExclamation + vbOKOnly
    Else
       'Merge the two folders
       For i = objSourceFolder.Items.count To 1 Step -1
           Set objItem = objSourceFolder.Items.Item(i)
           objItem.Move objTargetFolder
       Next i
 
       Set objDictionary = CreateObject("scripting.dictionary")
 
       'Remove the duplicates
       x = 0
       For n = objTargetFolder.Items.count To 1 Step -1
           Set objItem = objTargetFolder.Items.Item(n)
 
           Select Case objItem.Class
                  Case olMail
                       strKey = objItem.Subject & "," & objItem.Body & "," & objItem.SentOn
                  Case olAppointment
                       strKey = objItem.Subject & "," & objItem.Start & "," & objItem.Duration & "," & objItem.Location & "," & objItem.Body
                  Case olContact
                       strKey = objItem.FullName & "," & objItem.Email1Address & "," & objItem.Email2Address & "," & objItem.Email3Address
                  Case olTask
                       strKey = objItem.Subject & "," & objItem.StartDate & "," & objItem.DueDate & "," & objItem.Body
           End Select
 
           strKey = Replace(strKey, ", ", Chr(32))
 
           If objDictionary.Exists(strKey) = True Then
              objItem.Delete
              x = x + 1
           Else
              objDictionary.Add strKey, True
           End If
      Next n
 
      'Prompt you of the count of removed duplicates
      If x <> 0 Then
         MsgBox x & " duplicates removed when merging!", vbInformation + vbOKOnly
      End If
    End If
End Sub

VBA 代码 - 合并多个文件夹中的项目而不重复

  1. 稍后您需要检查 Outlook 宏设置,确保宏已启用。
  2. 最后你可以试试看。
  • 首先,回到新模块窗口。
  • 接下来按 F5 键按钮触发此宏。
  • 接下来,您需要选择要合并的两个文件夹。第一个是源文件夹,第二个是目标文件夹。
  • 之后,Outlook会将所有项目从源文件夹移动到目标文件夹。同时,重复项也会被自动删除。
  • 最终,您可能会收到一条消息,提示删除重复项的数量,如下面的屏幕截图:提示删除重复项计数的消息

微小的错误可能导致严重的崩溃

尽管加载了大量出色的功能,但 Outlook 仍然容易出现错误和损坏。 也许您遇到过各种 Outlook 问题。 许多用户倾向于忽略随机错误。 然而,正是这个微小的错误会引发严重的 Outlook 崩溃,从而危及 Outlook 文件。 因此,您不应忽视任何小错误。 相反,您应该尽快消除它们。 此外,你最好保持一个合适的 PST修复 工具,例如 DataNumen Outlook Repair. 凭借其高回收率,该公用事业公司已经超越了同行。

作者简介:

Shirley Zhang 是一位数据恢复专家 DataNumen, Inc.,它是数据恢复技术领域的世界领先者,包括 损坏的sql 和 outlook 修复软件产品。 欲了解更多信息,请访问 datanumen.com

立即分享:

评论被关闭。