Jei saugote išsiųstus el. laiškus keliuose aplankuose ir dabar norėtumėte visus šiuos išsiųstus laiškus skaičiuoti pagal mėnesį, galite perskaityti šį straipsnį. Čia pristatysime labai greitą būdą tai gauti.
Ankstesnis straipsnis – „Kaip greitai suskaičiuoti gaunamus el. laiškus pagal datą, mėnesį ar metus naudojant „Outlook VBA“.“ pasidalijo būdu, kaip skaičiuoti el. laiškus pagal mėnesį. Tačiau jis gali apdoroti el. laiškus viename aplanke. Jei norite skaičiuoti laiškus keliuose ar net visuose pašto aplankuose, turėtumėte naudoti kitas priemones. Taigi, toliau mes jums pateiksime dar vieną daug greitesnį būdą.
Suskaičiuokite išsiųstus el. laiškus pagal mėnesį
- Norėdami pradėti, pasiekite „Outlook VBA“ redaktorių naudodami „Alt + F11“.
- Tada įgalinkite nuorodą „MS Excel Object Library“ pagal „Kaip pridėti objekto library Nuoroda VBA".
- Po to į projektą arba modulį įdėkite šį VBA kodą.
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
- Tada perkelkite žymeklį į pirmąją paprogramę.
- Tada paspauskite „F5“, kad suaktyvintumėte šią makrokomandą.
- Iš karto bus rodomas „Excel“ failas, kuriame yra kiekvieno mėnesio išsiųstų el. laiškų skaičius, kaip parodyta paveikslėlyje toliau.
Nepanikuokite susidūrę su „Outlook“ korupcija
Galite būti susirūpinę, kai susiduriate su PST pažeidimu. Tačiau iš tikrųjų geriau nusiraminti kuo greičiau. Kaip visi žinome, panika yra bejėgė ir netgi sukelia chaotiškesnių ir rimtesnių problemų. Turėtumėte būti ramūs ir apsvarstyti priemones, pvz., pagalvoti, ar atnaujinote atsarginę kopiją, ir apsvarstyti, kaip tai padaryti remontas PST – ar naudoti trečiosios šalies įrankį, pvz DataNumen Outlook Repair arba kreipkitės į atitinkamus specialistus.
Autoriaus įvadas:
Shirley Zhang yra duomenų atkūrimo ekspertė DataNumen, Inc., kuri yra pasaulyje duomenų atkūrimo technologijų lyderė, įskaitant remontuoti mdf ir „Outlook“ taisymo programinės įrangos produktai. Norėdami gauti daugiau informacijos, apsilankykite WWW.datanumen.com

