如果您想快速獲取Outlook PST文件中每個顏色類別中的項目總數,則可以使用本文中公開的VBA代碼。 它將所有計數直接導出到Excel文件中,以方便您檢查。
有時,由於某些原因,您可能需要計算Outlook數據文件中每個顏色類別中的項目數。 通常,您可以使用即時搜索進行計數。 例如,首先單擊搜索框。 然後單擊“搜索”功能區中的“分類”按鈕,然後從下拉列表中選擇特定的顏色類別。 接下來,在“範圍”功能區組中選擇“所有Outlook項目”。 稍後,搜索完成後,將列出所選顏色類別中的所有項目。 現在,您可以在狀態欄的左下角看到這些搜索結果的計數。
毫無疑問,如果您有很多顏色類別,通過這種方式,一一計算將是非常繁瑣的。 因此,為響應此要求,我們將在這裡公開一種非常快捷的方法。 它將所有計數直接導出到Excel文件中。
將Outlook中每個顏色類別中的項目計數導出到Excel
- 首先,啟動 Outlook 應用程式。
- 然後按“ Alt + F11”鍵按鈕訪問Outlook VBA編輯器。
- 在隨後的“ Microsoft Visual Basic for Applications”窗口中,打開一個空白模塊。
- 接下來,您可以將以下VBA代碼複製到此模塊窗口中。
Public objDictionary As Object
Public objExcelApp As Excel.Application
Public objExcelWorkbook As Excel.Workbook
Public objExcelWorksheet As Excel.Worksheet
Sub ExportCountofItemsinEachColorCategories()
Dim objCategories As Object
Dim objCategory As Object
Dim objPSTFile As Outlook.Folder
Dim objFolder As Outlook.Folder
Dim strExcelFile As String
'Create a New Excel file
Set objExcelApp = CreateObject("Excel.Application")
Set objExcelWorkbook = objExcelApp.Workbooks.Add
Set objExcelWorksheet = objExcelWorkbook.Sheets("Sheet1")
objExcelWorksheet.Cells(1, 1) = "Color Category"
objExcelWorksheet.Cells(1, 2) = "Count"
'Find all the color categories
Set objDictionary = CreateObject("Scripting.Dictionary")
Set objCategories = Outlook.Application.Session.Categories
For Each objCategory In objCategories
objDictionary.Add objCategory.Name, 0
Next
Set objPSTFile = Outlook.Application.Session.PickFolder
For Each objFolder In objPSTFile.Folders
ProcessFolder objFolder
Next
'Save the new Excel file
objExcelWorksheet.Columns("A:B").AutoFit
strExcelFile = "E:\Outlook\Color Categories (" & Format(Now, "yyyy-mm-dd_hh-mm-ss") & ").xlsx"
objExcelWorkbook.Close True, strExcelFile
MsgBox "Complete!", vbExclamation
End Sub
Private Sub ProcessFolder(ByVal objCurrentFolder As Outlook.Folder)
Dim objItem As Object
Dim objSubFolder As Object
Dim ArrayCategories As Variant
Dim VarCategory As Variant
Dim ArrayKey As Variant
Dim ArrayItem As Variant
Dim i As Long
Dim nRow As Integer
'Count the items in each color category via Dictionary object
For Each objItem In objCurrentFolder.Items
If objItem.Categories <> "" Then
ArrayCategories = Split(objItem.Categories, ",")
For Each VarCategory In ArrayCategories
If objDictionary.Exists(VarCategory) = True Then
objDictionary.Item(VarCategory) = objDictionary.Item(VarCategory) + 1
End If
Next
End If
Next
ArrayKey = objDictionary.Keys
ArrayItem = objDictionary.Items
nRow = 2
'Input the information into the new Excel file
For i = LBound(ArrayKey) To UBound(ArrayKey)
objExcelWorksheet.Cells(nRow, 1) = ArrayKey(i)
objExcelWorksheet.Cells(nRow, 2) = ArrayItem(i) & “ Items”
nRow = nRow + 1
Next
'Process the subfolders recursively
For Each objSubFolder In objCurrentFolder.Folders
ProcessFolder objSubFolder
Next
End Sub
- 之後,檢查Outlook是否允許宏。
- 最後,您可以嘗試一下。
- 首先,在這個新宏中按F5鍵。
- 然後,您需要選擇一個源PST文件,然後單擊“確定”。
- 當出現提示“ Complete”的消息時,您可以轉到本地驅動器並打開預定義的文件夾以保存Excel文件。
- 找到並打開Excel文件。 它將如下圖所示:
如果Outlook突然崩潰該怎麼辦
儘管 Outlook 擁有許多強大的功能,但隨著時間的推移,您可能會遇到各種各樣的問題。例如,Outlook 可能會不時崩潰。最好的情況是,重新啟動 Outlook 可以解決問題。最糟糕的情況是,它可能會直接導致 PST 資料損壞。屆時,您需要採取各種措施來修復這些數據。 維修PST 文件以獲取最大的Outlook數據,您可以將其恢復為經驗豐富的工具,例如 DataNumen Outlook Repair.
作者簡介:
Shirley Zhang是的數據恢復專家 DataNumen,Inc.是數據恢復技術的全球領導者,包括 sql修復 和Outlook修復軟件產品。 欲了解更多信息,請訪問 萬維網。datanumen.COM

