Se memorizzi le e-mail inviate in diverse cartelle e ora desideri contare tutte queste e-mail inviate per mese, puoi leggere questo articolo. Qui introdurremo un modo considerevolmente veloce per ottenerlo.
Il precedente articolo – “Come contare rapidamente le e-mail in arrivo per data, mese o anno tramite Outlook VBA” ha condiviso un modo per contare le email per mese. Tuttavia, è in grado di elaborare le e-mail in una cartella. Se vuoi contare le e-mail in diverse o anche in tutte le cartelle di posta, dovresti usare gli altri mezzi. Pertanto, di seguito, ti esporremo un altro modo molto più rapido.
Conta le email inviate per mese
- Per cominciare, accedi all'editor VBA di Outlook tramite "Alt + F11".
- Quindi, abilitare il riferimento a “MS Excel Object Library" secondo "Come aggiungere un oggetto Library Riferimento in VBA".
- Successivamente, inserisci il seguente codice VBA in un progetto o modulo.
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
- Successivamente, sposta il cursore nella prima subroutine.
- Successivamente, premi "F5" per attivare questa macro.
- Immediatamente, verrà visualizzato un file Excel, che contiene i conteggi delle e-mail inviate in ogni mese, come mostrato nella figura seguente.
Niente panico di fronte alla corruzione di Outlook
Potresti tendere a essere preoccupato quando incontri danni PST. Eppure, in realtà, faresti meglio a calmarti il prima possibile. Come tutti sappiamo, il panico è impotente e porta persino a problemi più caotici e seri. Dovresti mantenere la calma per prendere in considerazione misure, come pensare se hai aggiornato il backup e considerare come farlo riparare PST – se ricorrere a strumenti di terze parti come DataNumen Outlook Repair o contattare i professionisti interessati.
Introduzione dell'autore:
Shirley Zhang è un'esperta di recupero dati in DataNumen, Inc., che è il leader mondiale nelle tecnologie di recupero dati, tra cui riparazione mdf e prodotti software di riparazione di Outlook. Per maggiori informazioni visita www.datanumen.com

