如果您将联系人组添加到当前电子邮件的“收件人”字段中,其中可能会有一些重复的组。 本文将教您如何使用 VBA 快速删除重复的收件人。
在撰写电子邮件时,如果您不仅添加联系人,还添加联系人组作为收件人,有时可能会出现一些重复的收件人,因为默认情况下联系人组是折叠的。 在这种情况下,如果要找出重复的,就得先展开联系人组,然后再手动比较收件人,这个在我之前的文章中有详细介绍——”如何从您的 Outlook 电子邮件中删除重复的收件人”。 毫无疑问,这非常乏味。 因此,许多用户渴望有一种快速的方法来删除重复的收件人。 下面教大家用Outlook VBA来获取。

快速删除 Outlook 电子邮件中的重复收件人
- 首先,启动您的 Outlook 应用程序。
- 然后切换到“开发人员”选项卡并单击“Visual Basic”按钮或只需按“Alt + F11”键。
- 接下来在“Microsoft Visual Basic for Applications”窗口中,您可以打开一个空白模块。
- 随后,将以下 VBA 代码复制并粘贴到该模块中。
Sub RemoveDuplicateRecipients()
Dim objCurrentMail As MailItem
Dim objRecipients As Recipients
Dim ContactGroupFound As Boolean
Dim i, n As Long
Set objCurrentMail = ActiveInspector.CurrentItem
ContactGroupFound = True
While ContactGroupFound = True
Set objRecipients = objCurrentMail.Recipients
ContactGroupFound = False
'Expand the contact groups in "To" field
For i = objRecipients.Count To 1 Step -1
If objRecipients(i).AddressEntry.DisplayType <> olUser Then
For n = 1 To objRecipients(i).AddressEntry.Members.Count
If objRecipients(i).AddressEntry.Members.Item(n).DisplayType = olUser Then
objCurrentMail.Recipients.Add (objRecipients(i).AddressEntry.Members.Item(n).Address)
Else
objCurrentMail.Recipients.Add (objRecipients(i).AddressEntry.Members.Item(n).Name)
ContactGroupFound = True
End If
Next
objRecipients(i).Delete
End If
Next i
objRecipients.ResolveAll
Wend
'Remove the duplicate recipients
For i = objRecipients.Count To 1 Step -1
For n = (i - 1) To 1 Step -1
If objRecipients(i).Address = objRecipients(n).Address Then
objRecipients(i).Delete
Exit For
End If
Next
Next
End Sub
- 之后,您可以在消息窗口的快速访问工具栏中添加新的VBA 工程。
- 稍后您需要将 Outlook 宏安全级别设置为低。
- 最后你可以试试看。
- 首先,像往常一样写一封电子邮件。
- 然后在“收件人”字段中添加联系人组和联系人。
- 接下来,您可以单击快速访问工具栏中的新宏按钮。
- 立即,Outlook 将自动扩展联系人组,然后删除重复的收件人。
保护您宝贵的 Outlook 数据
由于 Outlook 容易崩溃,您的 Outlook 数据也容易损坏。 因此,您必须付出很多努力来保护您的 Outlook 文件。 首先,您需要定期备份 PST 文件。 它将促进 损坏的 PST 维修。 另外,你最好准备一个得心应手的强大修复工具,比如 DataNumen Outlook Repair.
作者简介:
Shirley Zhang 是一位数据恢复专家 DataNumen, Inc.,它是数据恢复技术领域的世界领先者,包括 中密度纤维板修复 和 outlook 修复软件产品。 欲了解更多信息,请访问 datanumen.com
