当您在 Outlook 日历中创建或更改约会时,Outlook 将自动检查是否有任何冲突的约会。 这时候如果你想检查冲突,可以使用本文介绍的方法ost.
在创建或更改 Outlook 约会时,您可能曾经看到过“与另一个约会冲突”的文本。 这是因为 Outlook 可以自动检查冲突。 但是,Outlook 无法通过其默认功能帮助您快速找到冲突。 因此,在这里我们将告诉您一种生成函数以搜索所有冲突约会的方法。

找出与特定约会冲突的所有其他约会
- 首先,启动您的 Outlook 程序。
- 然后,在 Outlook 主窗口中,按“Alt + F11”键按钮。
- 您将立即访问 Outlook VBA 编辑器,您需要在其中打开一个未使用的模块。
- 接下来,将以下 VBA 代码复制到该模块中。
Sub FindOutConflictingAppointments()
Dim objAppointment As AppointmentItem
Dim dStartTime, dEndTime As Date
Dim strFilter As String
Dim objAppointments As Items
Dim objFoundAppointments As Items
Dim objItem As AppointmentItem
Dim i As Long
Dim strConflicts As String
Dim strMsg As String
Select Case Application.ActiveWindow.Class
Case olExplorer
Set objAppointment = Application.ActiveExplorer.Selection(1)
Case olInspector
Set objAppointment = Application.ActiveInspector.CurrentItem
End Select
dStartTime = objAppointment.start
dEndTime = objAppointment.End
Set objAppointments = Application.ActiveExplorer.CurrentFolder.Items
i = 1
'1: Find all appts whose end time within the start and end time of source appt
strFilter = "[End] >= " & Chr(34) & Format(dStartTime, "mm/dd/yyyy hh:mm AMPM") & Chr(34) & " AND [End] <= " & Chr(34) & Format(dEndTime, "mm/dd/yyyy hh:mm AMPM") & Chr(34)
Set objFoundAppointments = objAppointments.Restrict(strFilter)
For Each objItem In objFoundAppointments
If objItem.Subject <> objAppointment.Subject Then
strConflicts = strConflicts & i & ". " & objItem.Subject & vbCrLf
i = i + 1
End If
Next
'2: Find all appts occurring within the start and end time of source appt
strFilter = "[Start] >= " & Chr(34) & Format(dStartTime, "mm/dd/yyyy hh:mm AMPM") & Chr(34) & " AND [End] <= " & Chr(34) & Format(dEndTime, "mm/dd/yyyy hh:mm AMPM") & Chr(34)
Set objFoundAppointments = objAppointments.Restrict(strFilter)
For Each objItem In objFoundAppointments
If objItem.Subject <> objAppointment.Subject Then
strConflicts = strConflicts & i & ". " & objItem.Subject & vbCrLf
i = i + 1
End If
Next
'3: Find all appts whose start time within the start and end time of source appt
strFilter = "[Start] >= " & Chr(34) & Format(dStartTime, "mm/dd/yyyy hh:mm AMPM") & Chr(34) & " AND [Start] <= " & Chr(34) & Format(dEndTime, "mm/dd/yyyy hh:mm AMPM") & Chr(34)
Set objFoundAppointments = objAppointments.Restrict(strFilter)
For Each objItem In objFoundAppointments
If objItem.Subject <> objAppointment.Subject Then
strConflicts = strConflicts & i & ". " & objItem.Subject & vbCrLf
i = i + 1
End If
Next
'4: Find all appts cover the entire source appt
strFilter = "[Start] <= " & Chr(34) & Format(dStartTime, "mm/dd/yyyy hh:mm AMPM") & Chr(34) & " AND [End] >= " & Chr(34) & Format(dEndTime, "mm/dd/yyyy hh:mm AMPM") & Chr(34)
Set objFoundAppointments = objAppointments.Restrict(strFilter)
For Each objItem In objFoundAppointments
If objItem.Subject <> objAppointment.Subject Then
strConflicts = strConflicts & i & ". " & objItem.Subject & vbCrLf
i = i + 1
End If
Next
strMsg = i - 1 & " Conflicting Appointments:" & vbCrLf & vbCrLf & strConflicts
MsgBox strMsg, vbInformation + vbOKOnly, "Check Conflicts"
End Sub
- 之后,您可以退出当前窗口。
- 然后照常将此宏添加到快速访问工具栏。
- 稍后您还应确保在 Outlook 中启用了宏。 只需转到“宏设置”即可进行检查。
- 最后你可以试试看。
- 首先,选择或打开一个约会,其中有“与另一个约会冲突”的提示。
- 然后单击快速访问工具栏中的宏按钮。
- 您将立即收到一条消息,列出所有冲突的约会,如下图所示:
Outlook 腐败前的基本预防措施
众所周知,Outlook 很容易崩溃并出现错误。 因此,有必要为 Outlook 损坏做好充分准备。 其中之一ost 必要的预防措施是定期备份。 此外,建议准备一个强大的专业 Outlook修复 工具,例如 DataNumen Outlook Repair.
作者简介:
Shirley Zhang 是一位数据恢复专家 DataNumen, Inc.,它是数据恢复技术领域的世界领先者,包括 中密度纤维板恢复 和 outlook 修复软件产品。 欲了解更多信息,请访问 datanumen.com

