Jeśli przechowujesz wysłane wiadomości e-mail w kilku folderach i chcesz teraz policzyć wszystkie wysłane wiadomości według miesiąca, możesz przeczytać ten artykuł. Tutaj przedstawimy dość szybki sposób, aby to uzyskać.
Poprzedni artykuł - „Jak szybko liczyć przychodzące wiadomości e-mail według daty, miesiąca lub roku za pośrednictwem programu Outlook VBA”Udostępnił sposób liczenia e-maili według miesiąca. Jednak jest w stanie przetwarzać wiadomości e-mail w jednym folderze. Jeśli chcesz liczyć wiadomości e-mail w kilku lub nawet we wszystkich folderach poczty, powinieneś użyć innych metod. Dlatego w dalszej części przedstawimy wam inną, znacznie szybszą drogę.
Policz wysłane wiadomości e-mail według miesiąca
- Na początek otwórz edytor VBA programu Outlook za pomocą „Alt + F11”.
- Następnie włącz odniesienie do „MS Excel Object Library ”zgodnie z„Jak dodać bibliotekę obiektówrary Referencje w VBA".
- Następnie umieść następujący kod VBA w projekcie lub module.
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
- Następnie przenieś kursor do pierwszego podprogramu.
- Następnie naciśnij „F5”, aby wywołać to makro.
- Od razu pojawi się plik Excel zawierający liczbę wysłanych e-maili w każdym miesiącu, jak pokazano na poniższym rysunku.
Nie panikuj w obliczu korupcji programu Outlook
Możesz się martwić, gdy napotykasz uszkodzenia PST. Jednak w rzeczywistości lepiej się uspokój jak najszybciej. Jak wszyscy wiemy, panika jest bezradna, a nawet prowadzi do bardziej chaotycznych i poważnych problemów. Powinieneś zachować spokój, aby rozważyć środki, takie jak przemyślenie, czy masz zaktualizowaną kopię zapasową, i zastanów się, jak to zrobić naprawa PST - czy skorzystać z narzędzia innej firmy, takiego jak DataNumen Outlook Repair lub skontaktuj się z odpowiednimi specjalistami.
Wprowadzenie autora:
Shirley Zhang jest ekspertem w dziedzinie odzyskiwania danych w DataNumen, Inc., która jest światowym liderem w technologiach odzyskiwania danych, w tym naprawa mdf i oprogramowanie do naprawy programu Outlook. po więcej informacji odwiedź www.datanumen.com

