Si almacena los correos electrónicos enviados en varias carpetas y ahora le gustaría contar todos estos correos enviados por mes, puede leer este artículo. Aquí presentaremos una forma considerablemente rápida de conseguirlo.
El artículo anterior - "Cómo contar rápidamente los correos electrónicos entrantes por fecha, mes o año a través de Outlook VBA”Ha compartido una forma de contar los correos electrónicos por mes. Sin embargo, puede procesar los correos electrónicos en una carpeta. Si desea contar los correos electrónicos en varias o incluso en todas las carpetas de correo, debe utilizar los otros medios. Por lo tanto, a continuación, le expondremos otra forma mucho más rápida.
Cuente los correos electrónicos enviados por mes
- Para empezar, acceda al editor de Outlook VBA a través de "Alt + F11".
- Luego, habilite la referencia a "MS Excel Object Library "según"Cómo agregar una biblioteca de objetosrary Referencia en VBA".
- Después de eso, coloque el siguiente código VBA en un proyecto o módulo.
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
- A continuación, mueva el cursor a la primera subrutina.
- Posteriormente, presione "F5" para activar esta macro.
- Inmediatamente, aparecerá un archivo de Excel, que contiene el recuento de correos electrónicos enviados en cada mes, como se muestra en la siguiente figura.
No entre en pánico ante la corrupción de Outlook
Es posible que tiende a preocuparse cuando se encuentra con daños por PST. Sin embargo, en realidad, será mejor que se calme lo antes posible. Como todos sabemos, el pánico es impotente e incluso conduce a problemas más caóticos y graves. Debe mantener la calma para considerar medidas, como pensar si ha actualizado la copia de seguridad y considerar cómo reparar PST - si recurrir a herramientas de terceros como DataNumen Outlook Repair o contacta con profesionales relevantes.
Introducción del autor:
Shirley Zhang es experta en recuperación de datos en DataNumen, Inc., que es el líder mundial en tecnologías de recuperación de datos, incluyendo reparar mdf y productos de software de reparación de Outlook. Para más información visite www.datanumen.com

