Nếu bạn muốn nhận báo cáo về số lượng mục trong mỗi thư mục Outlook, bạn có thể sử dụng phương pháp được giới thiệu trong bài viết này. Nó sẽ nhanh chóng thực hiện việc đếm và xuất kết quả thành tệp Excel.
Trong bài viết trước của tôi – “Cách lấy nhanh Tổng số mục trong một thư mục và tất cả các thư mục con của nó thông qua Outlook VBA”, bạn có thể tìm hiểu một phương pháp sử dụng VBA để lấy số lượng mục trong một thư mục. Tuy nhiên, điều đó có nghĩa là nếu bạn muốn đếm các mục trong tất cả các thư mục, bạn phải chọn từng thư mục và chạy macro từng cái một. Đó là một chút tẻ nhạt. Do đó, chúng tôi sẽ hướng dẫn bạn một phương pháp khác, phương pháp này sẽ xuất số đếm sang tệp Excel.
Xuất Tổng số mục trong mỗi thư mục Outlook sang Excel
- Ngay từ đầu, hãy khởi chạy chương trình Outlook của bạn.
- Sau đó nhấn các nút phím “Alt + F11” trong cửa sổ chính của Outlook.
- Tiếp theo, bạn sẽ vào cửa sổ “Microsoft Visual Basic for Applications”, trong đó bạn cần mở một mô-đun không được sử dụng.
- Sau đó, sao chép và dán mã VBA sau vào mô-đun này.
Public strExcelFile As String
Public objExcelApp As Excel.Application
Public objExcelWorkbook As Excel.Workbook
Public objExcelWorksheet As Excel.Worksheet
Sub Export_CountOfItems_InEachFolder_toExcel()
Dim objSourcePST As Outlook.Folder
Dim objFolder As Outlook.Folder
'Create a new Excel file
Set objExcelApp = CreateObject("Excel.Application")
Set objExcelWorkbook = objExcelApp.Workbooks.Add
Set objExcelWorksheet = objExcelWorkbook.Sheets("Sheet1")
objExcelWorksheet.Cells(1, 1) = "Folder"
objExcelWorksheet.Cells(1, 2) = "Count Items"
'Select a source PST file
Set objSourcePST = Outlook.Application.Session.PickFolder
For Each objFolder In objSourcePST.folders
Call ProcessFolders(objFolder)
Next
'Fit the columns from A to B
objExcelWorksheet.Columns("A:B").AutoFit
strExcelFile = "E:\Outlook\" & objSourcePST.Name & " Folder Items Count (" & Format(Now, "yyyy-mm-dd hh-mm-ss") & ").xlsx"
objExcelWorkbook.Close True, strExcelFile
MsgBox "Complete!", vbExclamation
End Sub
Sub ProcessFolders(ByVal objCurrentFolder As Outlook.Folder)
Dim objItem As Object
Dim lCurrentFolderItemCount As Long
Dim nLastRow As Integer
lCurrentFolderItemCount = objCurrentFolder.Items.Count
nLastRow = objExcelWorksheet.Range("A" & objExcelWorksheet.Rows.Count).End(xlUp).Row + 1
'Add the values into the columns
objExcelWorksheet.Range("A" & nLastRow) = objCurrentFolder.FolderPath
objExcelWorksheet.Range("B" & nLastRow) = lCurrentFolderItemCount
If objCurrentFolder.folders.Count > 0 Then
For Each objSubfolder In objCurrentFolder.folders
Call ProcessFolders(objSubfolder)
Next
End If
End Sub
- Sau đó, bạn cần thay đổi cấp độ bảo mật macro Outlook của mình thành thấp.
- Sau đó, bạn có thể quay lại macro mới được thêm và nhấn nút phím F5 để chạy macro này.
- Tiếp theo, bạn cần chọn một tệp PST nguồn và nhấn “OK”.
- Sau khi macro kết thúc, bạn có thể vào thư mục cục bộ được xác định trước để tìm tệp Excel mới, tệp này sẽ giống như ảnh chụp màn hình sau:
Giải quyết các lỗi PST khó chịu
Có lẽ bạn đã gặp nhiều vấn đề khác nhau trong quá trình sử dụng Outlook. Để giải quyết các vấn đề nhỏ, bạn chỉ cần dùng đến công cụ sửa chữa hộp thư đến. Tuy nhiên, nếu các vấn đề nghiêm trọng đến mức chúng vượt quá khả năng của công cụ sẵn có, bạn phải sử dụng một công cụ mạnh hơn, chẳng hạn 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 sửa chữa 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


