Če shranjujete poslana e-poštna sporočila v več mapah in bi zdaj želeli vso to poslano pošto prešteti po mesecih, lahko preberete ta članek. Tukaj bomo predstavili precej hiter način, da ga dobite.
Prejšnji članek - “Kako hitro šteti dohodna e-poštna sporočila po datumu, mesecu ali letu prek programa Outlook VBA” je delil način štetja e-poštnih sporočil po mesecih. Vendar pa lahko obdela e-pošto v eni mapi. Če želite prešteti e-poštna sporočila v več ali celo vseh poštnih mapah, uporabite druga sredstva. Zato vam bomo v nadaljevanju razkrili še en veliko hitrejši način.
Preštejte poslana e-poštna sporočila po mesecih
- Za začetek odprite urejevalnik Outlook VBA prek »Alt + F11«.
- Nato omogočite sklicevanje na »MS Excel Object Library "glede na"Kako dodati Lib predmetarary Referenca v VBA".
- Nato vstavite naslednjo kodo VBA v projekt ali modul.
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
- Nato premaknite kazalec v prvi podprogram.
- Nato pritisnite "F5", da sprožite ta makro.
- Takoj se prikaže datoteka Excel, ki vsebuje število poslanih e-poštnih sporočil v vsakem mesecu, kot je prikazano na spodnji sliki.
Brez panike pred pokvarjenim Outlookom
Morda ste zaskrbljeni, ko naletite na poškodbo PST. A v resnici je bolje, da se čim prej umirite. Kot vsi vemo, je panika nemočna in celo vodi v bolj kaotične in resne težave. Ostanite mirni, da razmislite o ukrepih, na primer o tem, ali ste posodobili varnostno kopijo, in o tem, kako popravilo PST – ali uporabiti orodje tretje osebe, kot je DataNumen Outlook Repair ali se obrnite na ustrezne strokovnjake.
Uvod avtorja:
Shirley Zhang je strokovnjakinja za obnovitev podatkov v DataNumen, Inc., ki je vodilna na svetu na področju tehnologij za obnovitev podatkov, vključno z popravilo mdf in obeti za popravilo programskih izdelkov. Za več informacij obiščite www.datanumen.com

