Wenn Sie gesendete E-Mails in mehreren Ordnern speichern und nun alle diese gesendeten E-Mails nach Monat zählen möchten, können Sie diesen Artikel lesen. Hier werden wir einen sehr schnellen Weg vorstellen, um es zu bekommen.
Der vorherige Artikel - “So zählen Sie eingehende E-Mails schnell nach Datum, Monat oder Jahr über Outlook VBA”Hat eine Möglichkeit geteilt, E-Mails nach Monat zu zählen. Es ist jedoch in der Lage, die E-Mails in einem Ordner zu verarbeiten. Wenn Sie E-Mails in mehreren oder sogar allen E-Mail-Ordnern zählen möchten, sollten Sie die anderen Mittel verwenden. Daher werden wir Ihnen im Folgenden einen weiteren, viel schnelleren Weg aufzeigen.
Zählen Sie die gesendeten E-Mails nach Monat
- Greifen Sie zunächst über „Alt + F11“ auf den Outlook VBA-Editor zu.
- Aktivieren Sie dann den Verweis auf „MS Excel Object Library ”nach“So fügen Sie eine Objektbibliothek hinzurary Referenz in VBA".
- Fügen Sie danach den folgenden VBA-Code in ein Projekt oder Modul ein.
Dim objDictionary As Object
Sub CountSentMailsByMonth()
Dim objOutlookFile As Outlook.Folder
Dim objFolder As Outlook.Folder
Dim objExcelApp As Excel.Application
Dim objExcelWorkbook As Excel.Workbook
Dim objExcelWorksheet As Excel.Worksheet
Dim varMonths As Variant
Dim varItemCounts As Variant
Dim nLastRow As Integer
Set objDictionary = CreateObject("Scripting.Dictionary")
Set objInbox = Outlook.Application.Session.GetDefaultFolder(olFolderInbox)
'Get the default Outlook data file
Set objOutlookFile = Outlook.Application.Session.GetDefaultFolder(olFolderInbox).Parent
For Each objFolder In objOutlookFile.Folders
If objFolder.DefaultItemType = olMailItem Then
Call ProcessFolders(objFolder)
End If
Next
Set objExcelApp = CreateObject("Excel.Application")
objExcelApp.Visible = True
Set objExcelWorkbook = objExcelApp.Workbooks.Add
Set objExcelWorksheet = objExcelWorkbook.Sheets(1)
With objExcelWorksheet
.Cells(1, 1) = "Month"
.Cells(1, 2) = "Count"
End With
varMonths = objDictionary.Keys
varItemCounts = objDictionary.Items
For i = LBound(varMonths) To UBound(varMonths)
nLastRow = objExcelWorksheet.Range("A" & objExcelWorksheet.Rows.Count).End(xlUp).Row + 1
With objExcelWorksheet
.Cells(nLastRow, 1) = varMonths(i)
.Cells(nLastRow, 2) = varItemCounts(i)
End With
Next
objExcelWorksheet.Columns("A:B").AutoFit
End Sub
Sub ProcessFolders(ByVal objCurFolder As Outlook.Folder)
Dim i As Long
Dim objMail As Outlook.MailItem
Dim strMonth As String
For i = objCurFolder.Items.Count To 1 Step -1
If objCurFolder.Items(i).Class = olMail Then
Set objMail = objCurFolder.Items(i)
'Change to your own email address
If objMail.SenderEmailAddress = "you@datanumen.com" Then
strMonth = Format(Year(objMail.SentOn) & "-" & Month(objMail.SentOn), "YYYY/MM")
If objDictionary.Exists(strMonth) Then
objDictionary(strMonth) = objDictionary(strMonth) + 1
Else
objDictionary.Add strMonth, 1
End If
End If
End If
Next
End Sub
- Bewegen Sie als nächstes den Cursor in die erste Unterroutine.
- Drücken Sie anschließend „F5“, um dieses Makro auszulösen.
- Sofort wird eine Excel-Datei angezeigt, die die Anzahl der gesendeten E-Mails pro Monat enthält, wie in der folgenden Abbildung dargestellt.
Keine Panik angesichts von Outlook-Korruption
Sie können dazu neigen, sich Sorgen zu machen, wenn Sie auf PST-Schäden stoßen. In Wirklichkeit sollten Sie sich jedoch so schnell wie möglich beruhigen. Wie wir alle wissen, ist Panik hilflos und führt sogar zu chaotischeren und ernsteren Problemen. Sie sollten ruhig bleiben, um Maßnahmen in Betracht zu ziehen, z. B. darüber nachzudenken, ob Sie das Backup aktualisiert haben, und zu überlegen, wie PST reparieren - ob auf Tools von Drittanbietern zurückgegriffen werden soll DataNumen Outlook Repair oder wenden Sie sich an relevante Fachleute.
Einführung des Autors:
Shirley Zhang ist eine Datenrettungsexpertin in DataNumen, Inc., das weltweit führend bei Datenwiederherstellungstechnologien ist, einschließlich mdf reparieren und Outlook-Reparatursoftwareprodukte. Für weitere Informationen besuchen Sie www.datanumen.com €XNUMX

