如何在 Outlook 中快速找出与特定约会冲突的所有其他约会

立即分享:

当您在 Outlook 日历中创建或更改约会时,Outlook 将自动检查是否有任何冲突的约会。 这时候如果你想检查冲突,可以使用本文介绍的方法ost.

在创建或更改 Outlook 约会时,您可能曾经看到过“与另一个约会冲突”的文本。 这是因为 Outlook 可以自动检查冲突。 但是,Outlook 无法通过其默认功能帮助您快速找到冲突。 因此,在这里我们将告诉您一种生成函数以搜索所有冲突约会的方法。

在 Outlook 中快速找出与特定约会冲突的所有其他约会

找出与特定约会冲突的所有其他约会

  1. 首先,启动您的 Outlook 程序。
  2. 然后,在 Outlook 主窗口中,按“Alt + F11”键按钮。
  3. 您将立即访问 Outlook VBA 编辑器,您需要在其中打开一个未使用的模块。
  4. 接下来,将以下 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

VBA 代码 - 找出与特定约会冲突的所有其他约会

  1. 之后,您可以退出当前窗口。
  2. 然后照常将此宏添加到快速访问工具栏。
  3. 稍后您还应确保在 Outlook 中启用了宏。 只需转到“宏设置”即可进行检查。
  4. 最后你可以试试看。
  • 首先,选择或打开一个约会,其中有“与另一个约会冲突”的提示。
  • 然后单击快速访问工具栏中的宏按钮。
  • 您将立即收到一条消息,列出所有冲突的约会,如下图所示:列出所有冲突约会的消息

Outlook 腐败前的基本预防措施

众所周知,Outlook 很容易崩溃并出现错误。 因此,有必要为 Outlook 损坏做好充分准备。 其中之一ost 必要的预防措施是定期备份。 此外,建议准备一个强大的专业 Outlook修复 工具,例如 DataNumen Outlook Repair.

作者简介:

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

立即分享:

评论被关闭。