Om du vill få en rapport om antalet objekt i varje Outlook-mapp kan du använda metoden som introduceras i den här artikeln. Det räknar snabbt och exporterar resultaten till en Excel-fil.
I min tidigare artikel - “Hur man snabbt får det totala antalet artiklar i en mapp och alla dess undermappar via Outlook VBA”, Kan du lära dig en metod med VBA för att få antalet objekt i en mapp. Men på det sättet, om du vill räkna objekten i alla mappar, måste du välja varje mapp och köra makrot en efter en. Det är lite tråkigt. Därför lär vi dig en annan metod som exporterar räkningen till en Excel-fil.
Exportera det totala antalet artiklar i varje Outlook-mapp till Excel
- Starta ditt Outlook-program från början.
- Tryck sedan på “Alt + F11” -knapparna i huvudfönstret i Outlook.
- Därefter kommer du in i "Microsoft Visual Basic for Applications" -fönstret, där du måste öppna en modul som inte används.
- Kopiera sedan och klistra in följande VBA-kod i den här modulen.
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
- Därefter måste du ändra din säkerhetsnivå för makro i Outlook till låg.
- Sedan kan du gå tillbaka till det nyligen tillagda makrot och trycka på F5-tangenten för att köra detta makro.
- Därefter måste du välja en PST-källfil och trycka på "OK".
- När makrot är klart kan du gå till den fördefinierade lokala mappen för att hitta den nya Excel-filen, som ser ut som följande skärmdump:
Ställ ner irriterande PST-fel
Du kanske har stött på olika problem när du använder Outlook. För att hantera de små problemen kan du helt enkelt tillgripa verktyg för reparation av inkorgen. Ändå, om problemen är så allvarliga att de har gått bortom vad det inbyggda verktyget kan göra, måste du använda ett kraftfullare verktyg, som DataNumen Outlook Repair.
Författarintroduktion:
Shirley Zhang är expert på dataåterställning DataNumen, Inc., som är världsledande inom teknik för återställning av data, inklusive mdf-reparation och Outlook-programvara för reparationsprogramvara. För mer information besök www.datanumen.com


