跳到主要内容

Outlook:如何删除重复的日历项目

作者:孙 最后修改时间:2022-04-29

有时,当我们从其他设备导入事件时,会有一些重复的日历项目。 为了去除重复的日历项,本教程介绍了两种不同的方法,一种是在重复项较少时逐个删除,另一种是使用VBA一次删除所有重复项。

手动删除重复的日历项

VBA一次删除重复的日历项目

Office 选项卡 - 在 Microsoft Office 中启用选项卡式编辑和浏览,让工作变得轻而易举
解锁 Outlook 的 Kutools 免费 版本 立即享受超过 70 项功能,永久无限制访问
使用这些高级功能增强您的 Outlook 2021 - 2010 或 Outlook 365。享受 70 多种强大功能并提升您的电子邮件体验!

手动删除重复的日历项

 

要逐个删除重复的日历项,您需要将它们按特定顺序列出以便首先清楚地查看重复项,然后将它们逐个删除。

1.一般来说,日历是在一个 日历 查看,激活要删除重复项的日历,然后单击 首页 > 变更检视 > 清单.

doc 删除重复的日历项目 1

现在日历已被视为列表。

doc 删除重复的日历项目 1

doc 删除重复的日历项目 1

2. 然后指定用于比较项目是否重复的条件,假设比较项目是否具有相同的主题。 点击 分科 在日历列表中,然后将具有相同主题的所有项目放在一起。

doc 删除重复的日历项目 1

3. 现在您可以通过右键单击项目并单击来将具有相同主题的项目一一删除 删除 从弹出的上下文菜单中。

doc 删除重复的日历项目 1


VBA一次删除重复的日历项目

 

这里介绍一些VBA,它可以在不同情况下删除日历文件夹中所有重复的日历项。

1。 按 其他 + F11 启用键 Microsoft Visual Basic应用程序 窗口。

2。 点击 插页 > 模块 创建一个新的空白模块,然后将以下代码复制并粘贴到模块中。

VBA:删除一个特定类别中的所有重复日历项目

'Sub RemoveDuplicateCalendar()
'UpdatebyExtendoffice20220413
  Dim xStores As Stores
  Dim xStore As Store
  Dim xRootFolder As Folder
  Dim xFolder As Object
  Set xStores = Application.Session.Stores
  For Each xStore In xStores
    Set xRootFolder = xStore.GetRootFolder
    For Each xFolder In xRootFolder.Folders
      Call ProcessFolders(xFolder)
    Next
  Next
  Set xStores = Nothing
End Sub

Sub ProcessFolders(ByVal CurrentFld As Folder)
  Dim xDictionary As Object
  Dim i As Long
  Dim xItem As Object
  Dim xKey As String
  Dim xSubFld As Folder
  On Error Resume Next
  If CurrentFld.DefaultItemType <> olAppointmentItem Then Exit Sub
  Set xDictionary = CreateObject("Scripting.Dictionary")
  For i = CurrentFld.Items.Count To 1 Step -1
    Set xItem = CurrentFld.Items.Item(i)
    'change categories as you need in below script
    If xItem.Categories = "date" Then
    'change the comparing items as you need
      xKey = xItem.Subject & xItem.Location & xItem.Body & xItem.Categories
      If xDictionary.Exists(xKey) = True Then
        xItem.Delete
      Else
        xDictionary.Add xKey, True
      End If
    End If
  Next i
  For Each xSubFld In CurrentFld.Folders
    ProcessFolders xSubFld
  Next
End Sub

在此 VBA 中,它将删除“日期” 这个类别通过比较主题、位置、正文和类别,您可以根据需要更改它们。

doc 删除重复的日历项目 1

3.然后按 F5 键或单击 Run 运行代码,出现一个对话框 弹出,选择 删除重复日历 并点击 运行 doc 删除重复的日历项目 1 .

doc 删除重复的日历项目 1

然后删除了“日期”类别中的重复项。

VBA:跨类别删除所有重复的日历项目

Sub RemoveDuplicateCalendar()
'UpdatebyExtendoffice20220413
  Dim xStores As Stores
  Dim xStore As Store
  Dim xRootFolder As Folder
  Dim xFolder As Object
  Set xStores = Application.Session.Stores
  For Each xStore In xStores
    Set xRootFolder = xStore.GetRootFolder
    For Each xFolder In xRootFolder.Folders
      Call ProcessFolders(xFolder)
    Next
  Next
  Set xStores = Nothing
End Sub

Sub ProcessFolders(ByVal CurrentFld As Folder)
  Dim xDictionary As Object
  Dim i As Long
  Dim xItem As Object
  Dim xKey As String
  Dim xSubFld As Folder
  On Error Resume Next
  If CurrentFld.DefaultItemType <> olAppointmentItem Then Exit Sub
  Set xDictionary = CreateObject("Scripting.Dictionary")
  For i = CurrentFld.Items.Count To 1 Step -1
    Set xItem = CurrentFld.Items.Item(i)
    'change the comparing items as you need
      xKey = xItem.Subject & xItem.Location & xItem.Body & xItem.Categories
      If xDictionary.Exists(xKey) = True Then
        xItem.Delete
      Else
        xDictionary.Add xKey, True
      End If
  Next i
  For Each xSubFld In CurrentFld.Folders
    ProcessFolders xSubFld
  Next
End Sub

运行此代码,每个类别中相同主题、位置、正文、类别的所有重复项均已删除。

doc 删除重复的日历项目 1

doc 删除重复的日历项目 1

备注:以上 VBA 作品在日历文件夹中包括子文件夹。


最佳办公生产力工具

最新消息:Kutools for Outlook 发布 免费版本!

体验全新的 Kutools for Outlook 免费版本拥有 70 多项令人难以置信的功能,您可以永久使用! 点击立即下载!

🤖 Kutools人工智能 : 具有人工智能魔力的即时专业电子邮件——一键天才回复、完美语气、多语言掌握。轻松改变电子邮件! ...

📧 电子邮件自动化: 自动回复(适用于 POP 和 IMAP)  /  安排发送电子邮件  /  发送电子邮件时按规则自动抄送/密件抄送  /  自动转发(高级规则)   /  自动添加问候语   /  自动将多收件人电子邮件拆分为单独的消息 ...

📨 电子邮件管理: 撤回电子邮件  /  按主题和其他人阻止诈骗电子邮件  /  删除重复的电子邮件  /  高级搜索  /  合并文件夹 ...

📁 附件专业版批量保存  /  批量分离  /  批量压缩  /  自动保存   /  自动分离  /  自动压缩 ...

🌟 界面魔法: 😊更多又漂亮又酷的表情符号   /  收到重要邮件时提醒您  /  最小化 Outlook 而不是关闭 ...

👍 一键奇迹: 使用传入附件回复全部  /   反网络钓鱼电子邮件  /  🕘显示发件人的时区 ...

👩🏼‍🤝‍👩🏻 通讯录和日历: 从选定的电子邮件中批量添加联系人  /  将联系人组拆分为各个组  /  删除生日提醒 ...

只需单击一下即可立即解锁 Kutools for Outlook -永久免费. 别等了, 立即下载并提高您的效率!

kutools for outlook 功能1 kutools for outlook 功能2
 

 

 

Comments (2)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
Sadly neither of these work
This comment was minimized by the moderator on the site
I have tested the code and both of them work, What is your problem?
There are no comments posted here yet
Leave your comments
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations