Cách nhanh chóng tìm ra tất cả các cuộc hẹn khác xung đột với một cuộc hẹn cụ thể trong Outlook

Chia sẻ ngay bây giờ:

Khi bạn tạo hoặc thay đổi lịch hẹn trong lịch Outlook, Outlook sẽ tự động kiểm tra xem có lịch hẹn nào trùng lặp hay không. Lúc này, nếu bạn muốn tự kiểm tra các xung đột, bạn có thể sử dụng phương pháp được giới thiệu trong bài viết này.

Có lẽ bạn đã từng thấy dòng chữ “Xung đột với cuộc hẹn khác” khi tạo hoặc thay đổi cuộc hẹn Outlook. Đó là vì Outlook có thể tự động kiểm tra xung đột. Tuy nhiên, Outlook không thể giúp bạn nhanh chóng tìm ra các xung đột bằng các tính năng mặc định của nó. Vì vậy, ở đây chúng tôi sẽ cho bạn biết một phương pháp tạo hàm tìm kiếm tất cả các cuộc hẹn xung đột.

Nhanh chóng tìm ra tất cả các cuộc hẹn khác xung đột với một cuộc hẹn cụ thể trong Outlook

Tìm hiểu tất cả các cuộc hẹn khác xung đột với một cuộc hẹn cụ thể

  1. Ngay từ đầu, hãy khởi chạy chương trình Outlook của bạn.
  2. Sau đó, trong cửa sổ chính của Outlook, nhấn nút phím “Alt + F11”.
  3. Ngay lập tức, bạn sẽ truy cập trình soạn thảo Outlook VBA, trong đó bạn cần mở một mô-đun không sử dụng.
  4. Tiếp theo, sao chép mã VBA sau vào mô-đun này.
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

Mã VBA - Tìm hiểu tất cả các cuộc hẹn khác xung đột với một cuộc hẹn cụ thể

  1. Sau đó, bạn có thể thoát khỏi cửa sổ hiện tại.
  2. Sau đó thêm macro này vào Thanh công cụ truy cập nhanh như bình thường.
  3. Sau này bạn cũng nên đảm bảo rằng macro được bật trong Outlook của mình. Chỉ cần vào “Cài đặt macro” để kiểm tra.
  4. Cuối cùng bạn có thể có một thử.
  • Đầu tiên, chọn hoặc mở một cuộc hẹn, trong đó có lời nhắc “Xung đột với cuộc hẹn khác”.
  • Sau đó bấm vào nút macro trong Thanh công cụ truy cập nhanh.
  • Ngay lập tức, bạn sẽ nhận được thông báo liệt kê tất cả các cuộc hẹn xung đột, được hiển thị dưới dạng ảnh chụp màn hình sau:Thông báo liệt kê tất cả các cuộc hẹn xung đột

Các biện pháp phòng ngừa cần thiết trước khi Outlook bị hỏng

Ai cũng biết Outlook dễ bị lỗi và gặp sự cố. Vì vậy, việc chuẩn bị sẵn sàng để đối phó với các lỗi của Outlook là điều cần thiết. Một trong những biện pháp phòng ngừa quan trọng nhất là sao lưu định kỳ. Ngoài ra, nên chuẩn bị một hệ thống chuyên dụng mạnh mẽ. Sửa chữa Outlook công cụ, như DataNumen Outlook Repair.

Giới thiệu tác giả:

Shirley Zhang là một chuyên gia phục hồi dữ liệu trong DataNumen, Inc., công ty hàng đầu thế giới về công nghệ khôi phục dữ liệu, bao gồm phục hồi mdf và các sản phẩm phần mềm sửa chữa triển vọng. Để biết thêm thông tin, hãy truy cập www.datanumennăm

Chia sẻ ngay bây giờ:

Được đóng lại.