Sekiranya anda menyimpan e-mel yang dihantar dalam beberapa folder dan sekarang ingin mengira semua e-mel yang dihantar mengikut bulan, anda boleh membaca artikel ini. Di sini kita akan memperkenalkan cara yang sangat cepat untuk mendapatkannya.
Artikel sebelumnya - “Cara Mengira E-mel Masuk dengan Cepat mengikut Tarikh, Bulan atau Tahun melalui Outlook VBA"Telah berkongsi cara untuk mengira e-mel mengikut bulan. Walau bagaimanapun, ia dapat memproses e-mel dalam satu folder. Sekiranya anda ingin mengira e-mel dalam beberapa atau bahkan semua folder mel, anda harus menggunakan kaedah lain. Oleh itu, berikut ini, kami akan memberi cara lain yang lebih cepat kepada anda.
Hitung E-mel yang Dihantar mengikut Bulan
- Sebagai permulaan, akses editor Outlook VBA melalui "Alt + F11".
- Kemudian, aktifkan rujukan ke "MS Excel Object Library "menurut"Bagaimana Menambah Objek Library Rujukan dalam VBA".
- Selepas itu, masukkan kod VBA berikut ke dalam projek atau 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
- Seterusnya, gerakkan kursor ke subrutin pertama.
- Selepas itu, tekan "F5" untuk mencetuskan makro ini.
- Sekali gus, fail Excel akan muncul, yang mengandungi jumlah e-mel yang dihantar dalam setiap bulan, seperti yang ditunjukkan dalam gambar di bawah.
Jangan Panik Menghadapi Rasuah Outlook
Anda mungkin cenderung bimbang ketika mengalami kerosakan PST. Namun, pada hakikatnya, lebih baik anda tenang secepat mungkin. Seperti yang kita semua ketahui, kepanikan tidak berdaya malah menimbulkan masalah yang lebih kacau dan serius. Anda harus bertenang untuk mempertimbangkan langkah-langkah, seperti memikirkan apakah anda telah mengemas kini sandaran dan mempertimbangkan cara melakukannya membaiki PST - sama ada menggunakan alat pihak ketiga seperti DataNumen Outlook Repair atau menghubungi profesional yang berkaitan.
Pengenalan Pengarang:
Shirley Zhang adalah pakar pemulihan data di DataNumen, Inc., yang merupakan pemimpin dunia dalam teknologi pemulihan data, termasuk baiki mdf dan produk perisian pembaikan prospek. Untuk maklumat lebih lanjut, lawati www.datanumen.com

