Bài viết này sẽ hướng dẫn bạn một phương pháp dễ dàng để in ra danh sách tất cả các cuộc hẹn được hiển thị là “Bận” và được lên lịch trong một phạm vi ngày cụ thể.
Việc tìm tất cả các cuộc hẹn bận trong một khoảng thời gian cụ thể bằng cách duyệt qua tất cả các lịch khá dễ dàng. Bạn chỉ cần đặt phạm vi tìm kiếm thành “Tất cả mục lịch”. Sau đó, tìm kiếm các cuộc hẹn có “Hiển thị thời gian là” bằng “Bận” và nằm trong khoảng ngày bắt đầu và ngày kết thúc cụ thể. Tuy nhiên, theo cách này, khi muốn in các cuộc hẹn đã tìm thấy và vào “Tệp” > “In”, bạn sẽ thấy chỉ có tùy chọn “Kiểu ghi chú” khả dụng. Điều đó có nghĩa là bạn không thể in các cuộc hẹn đã tìm thấy dưới dạng danh sách. Vì vậy, nếu bạn muốn in danh sách các cuộc hẹn đó, bạn có thể sử dụng cách sau.

In danh sách tất cả các cuộc hẹn bận trong một phạm vi ngày cụ thể
- Ngay từ đầu, hãy khởi chạy trình soạn thảo Outlook VBA thông qua “Alt + F11”.
- Tiếp theo, trong cửa sổ bật lên “Microsoft Visual Basic for Applications”, hãy thêm tham chiếu đến “MS Excel Object Library” theo hướng dẫn trong “Cách thêm tham chiếu thư viện đối tượng trong VBA".
- Sau đó, đặt mã VBA sau vào tệp module.
Dim dStart, dEnd As Date
Dim objExcelApp As Excel.Application
Dim objExcelWorkbook As Excel.Workbook
Dim objExcelWorksheet As Excel.Worksheet
Sub PrintListOfAllBusyAppointments()
Dim objStore As Store
Dim objFolder As Folder
dStart = InputBox("Enter the start date:", , Date)
dEnd = InputBox("Enter the end date:", , Date + 30)
Set objExcelApp = CreateObject("Excel.Application")
Set objExcelWorkbook = objExcelApp.Workbooks.Add
Set objExcelWorksheet = objExcelWorkbook.Sheets(1)
objExcelApp.Visible = True
With objExcelWorksheet
.Cells(1, 1) = "Subject"
.Cells(1, 1).Font.Bold = True
.Cells(1, 2) = "Location"
.Cells(1, 2).Font.Bold = True
.Cells(1, 3) = "Start"
.Cells(1, 3).Font.Bold = True
.Cells(1, 4) = "End"
.Cells(1, 4).Font.Bold = True
.Cells(1, 5) = "In Folder"
.Cells(1, 5).Font.Bold = True
End With
For Each objStore In Application.Session.Stores
For Each objFolder In objStore.GetRootFolder.Folders
If objFolder.DefaultItemType = olAppointmentItem Then
Call ProcessFolders(objFolder)
End If
Next
Next
objExcelWorksheet.Columns("A:E").AutoFit
objExcelWorksheet.PrintOut
objExcelWorkbook.Close False
objExcelApp.Quit
End Sub
Sub ProcessFolders(ByVal objCurFolder As Folder)
Dim strFilter As String
Dim objItems As Outlook.Items
Dim objRestrictedItems As Outlook.Items
Dim objAppointment As AppointmentItem
Dim nLastRow As Integer
Dim objSubFolder As Folder
Set objItems = objCurFolder.Items
objItems.IncludeRecurrences = True
objItems.Sort "[Start]"
'Get the appointments in the specific date range
strFilter = "[Start] >= " & Chr(34) & dStart & " 00:00 AM" & Chr(34) & " AND [End] <= " & Chr(34) & dEnd & " 11:59 PM" & Chr(34)
Set objRestrictedItems = objItems.Restrict(strFilter)
For Each objAppointment In objRestrictedItems
If objAppointment.BusyStatus = olBusy Then
nLastRow = objExcelWorksheet.Range("A" & objExcelWorksheet.Rows.Count).End(xlUp).Row + 1
With objExcelWorksheet
.Range("A" & nLastRow) = objAppointment.Subject
.Range("B" & nLastRow) = objAppointment.Location
.Range("C" & nLastRow) = objAppointment.Start
.Range("D" & nLastRow) = objAppointment.End
.Range("E" & nLastRow) = objCurFolder.FolderPath
End With
End If
Next
'Process all subfolders recursively
If objCurFolder.Folders.Count > 0 Then
For Each objSubFolder In objCurFolder.Folders
Call ProcessFolders(objSubFolder)
Next
End If
End Sub
- Sau đó, nhấp vào chương trình con đầu tiên và nhấn nút phím “F5”.
- Tiếp theo, bạn sẽ được yêu cầu chỉ định phạm vi ngày để tìm kiếm các cuộc hẹn.
- Sau đó, nhấp vào “OK” để tiếp tục macro.
- Cuối cùng, khi macro kết thúc, danh sách các cuộc hẹn bận trong phạm vi ngày được xác định trước trong tất cả các thư mục lịch sẽ được in, như minh họa trong ảnh chụp màn hình bên dưới.
Xử lý Tham nhũng Outlook gây phiền nhiễu
Nếu Outlook của bạn luôn đóng không đúng cách, bạn có thể gặp phải nhiều vấn đề sau này. Trong số đó, tệp Outlook bị hỏng là tệp tồi tệ nhất. Nếu không muốn mất dữ liệu, bạn cần sử dụng công cụ sửa lỗi PST, chẳng hạn như DataNumen Outlook Repair. Nó có thể lấy lại dữ liệu tối đa từ Outlook bị hỏng tập tin.
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 sửa lỗi sql 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


