Hvis du lagrer sendte e-poster i flere mapper og nå ønsker å telle alle disse sendte e-postene etter måned, kan du lese denne artikkelen. Her vil vi introdusere en betydelig rask måte å få det på.
Den forrige artikkelen – "Slik teller du raskt innkommende e-poster etter dato, måned eller år via Outlook VBA” har delt en måte å telle e-poster etter måned. Den er imidlertid i stand til å behandle e-postene i én mappe. Hvis du vil telle e-poster i flere eller til og med alle e-postmappene, bør du bruke den andre måten. Derfor vil vi i det følgende avsløre en annen mye raskere måte for deg.
Tell de sendte e-postene etter måned
- Til å begynne med, få tilgang til Outlook VBA-redigering via "Alt + F11".
- Aktiver deretter referanse til "MS Excel Object Library" ifølge "Hvordan legge til et objekt Library Referanse i VBA".
- Etter det, legg følgende VBA-kode inn i et prosjekt eller en 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 Count Vari DimantMonR Set objDictionary = CreateObject("Scripting.Dictionary") Sett objInbox = Outlook.Application.Session.GetDefaultFolder(olFolderInbox) 'Få standard Outlook-datafilen Set objOutlookFile = Outlook.Application.Session.GetDefaultFolder(olFolderInbox).Folder For Every objOutlookFile.Folders If objFolder.DefaultItemType = olMailItem Deretter kaller ProcessFolders(objFolder) End If Next Set objExcelApp = CreateObject("Excel.Application") objExcelApp.Visible = True Set objExcelWorkbook =ObjExcelWorkbook = objExcelAppcelWdObjExcelApp. .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)(nMonthRsow) = objExcelWorksheet.Range("A" & objExcelWorksheet.Rows.Count).End(xlUp).Row + 1 With objExcelWorksheet .Cells(nLastRow, 1) = varMonths(i) .Cells(nLastRow, 2) =i varem Avslutt med neste 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 Trinn -1 Hvis objCurFolder.Items(i).Class = olMail Sett deretter objMail = objCurFolder.Items(i) 'Endre til din egen e-postadresse If objMail.SenderEmailAddress = "you@datanumen.com" Deretter 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
- Deretter flytter du markøren til den første subrutinen.
- Trykk deretter "F5" for å utløse denne makroen.
- Med en gang vil en Excel-fil dukke opp, som inneholder antall sendte e-poster i hver måned, som vist i figuren nedenfor.
Ikke få panikk i møte med Outlook-korrupsjon
Du kan ha en tendens til å være bekymret når du møter PST-skader. Men i virkeligheten bør du roe deg ned så snart som mulig. Som vi alle vet, er panikk hjelpeløs og fører til og med til mer kaotiske og alvorlige problemer. Du bør forholde deg rolig til å vurdere tiltak, som å tenke over om du har oppdatert backup og vurdere hvordan reparere PST – om man skal ty til tredjepartsverktøy som DataNumen Outlook Repair eller kontakt relevante fagpersoner.
Forfatterintroduksjon:
Shirley Zhang er en datagjenopprettingsekspert innen DataNumen, Inc., som er verdensledende innen datagjenopprettingsteknologier, inkludert reparere mdf og Outlook-reparasjonsprodukter. For mer informasjon besøk www.datanumen. Med
Legg igjen en kommentar