如何在Excel文件中自動記錄每天收到的電子郵件總數

立即分享:

本文將教您如何讓Outlook自動計算每天收到的電子郵件數量並將其寫入Excel文件。

許多用戶需要計算每天收到的電子郵件總數。 此外,為了將來進行更方便的檢查,許多人習慣將總數記錄到Excel文件中。 在這種情況下,您當然可以選擇每天手動計數和記錄。 但是,這有點麻煩。 而且您有時可能會忘記這樣做。 因此,您必須希望有一種方便的方法,該方法可以使Outlook自動執行此操作。 為響應此要求,下面我們將教您如何使用VBA來實現它。

在Excel文件中自動記錄每天收到的電子郵件總數

在Excel文件中自動記錄每天收到的電子郵件總數

  1. 首先,啟動Outlook應用程序。
  2. 然後在Outlook主窗口中按“ Alt + F11”鍵快捷方式。
  3. 接下來在彈出的VBA編輯器窗口中,打開“ ThisOutlookSession”項目。
  4. 隨後,將以下VBA代碼複製並粘貼到該項目中。
Private Sub Application_Reminder(ByVal Item As Object)
    If Item.Class = olTask And Item.Subject = "Update Email Count" Then
       Call GetAllInboxFolders
    End If
End Sub

Private Sub GetAllInboxFolders()
    Dim objInboxFolder As Outlook.Folder
    Dim strExcelFile As String
    Dim objExcelApp As Excel.Application
    Dim objExcelWorkbook As Excel.Workbook
    Dim objExcelWorksheet As Excel.Worksheet
    Dim nNextEmptyRow As Integer
    Dim lEmailCount As Long
 
    lEmailCount = 0
    Set objInboxFolder = Outlook.Application.Session.GetDefaultFolder(olFolderInbox)
    Call UpdateEmailCount(objInboxFolder, lEmailCount)
 
    ‘Change the path to the Excel file
    strExcelFile = "E:\Email\Email Count.xlsx"
    Set objExcelApp = CreateObject("Excel.Application")
    Set objExcelWorkbook = objExcelApp.Workbooks.Open(strExcelFile)
    Set objExcelWorksheet = objExcelWorkbook.Sheets("Sheet1")
 
    nNextEmptyRow = objExcelWorksheet.Range("A" & objExcelWorksheet.Rows.Count).End(xlUp).Row + 1
 
    'Add the values into the columns
    objExcelWorksheet.Range("A" & nNextEmptyRow) = nNextEmptyRow - 1
    objExcelWorksheet.Range("B" & nNextEmptyRow) = Year(Date - 1) & "-" & Month(Date - 1) & "-" & Day(Date - 1)
    objExcelWorksheet.Range("C" & nNextEmptyRow) = lEmailCount
 
    'Fit the columns from A to C
    objExcelWorksheet.Columns("A:C").AutoFit
   
    'Save the changes and close the Excel file
    objExcelWorkbook.Close SaveChanges:=True
End Sub

Private Sub UpdateEmailCount(objFolder As Outlook.Folder, ByRef lCurEmailCount As Long)
    Dim objItems As Outlook.Items
    Dim objItem As Object
    Dim objMail As Outlook.MailItem
    Dim strDay As String
    Dim strReceivedDate As String
    Dim lEmailCount As Long
    Dim objSubFolder As Outlook.Folder
 
    Set objItems = objFolder.Items
 
    objItems.SetColumns ("ReceivedTime")
    strDay = Year(Date - 1) & "-" & Month(Date - 1) & "-" & Day(Date - 1)
 
    For Each objItem In objItems
        If objItem.Class = olMail Then
           Set objMail = objItem
           strReceivedDate = Year(objMail.ReceivedTime) & "-" & Month(objMail.ReceivedTime) & "-" & Day(objMail.ReceivedTime)
           If strReceivedDate = strDay Then
              lCurEmailCount = lCurEmailCount + 1
           End If
        End If
    Next
 
    'Process the subfolders in the folder recursively
    If (objFolder.Folders.Count > 0) Then
       For Each objSubFolder In objFolder.Folders
           Call UpdateEmailCount(objSubFolder, lCurEmailCount)
       Next
    End If
End Sub

VBA代碼-在Excel文件中自動記錄每天收到的電子郵件總數

  1. 接下來,對該代碼進行簽名並更改Outlook宏設置以允許簽名的宏。
  2. 之後,您需要每天創建一個重複任務。
  • 首先,在“任務”窗格中單擊“新建任務”按鈕。
  • 在彈出的新任務窗口中,單擊“重複發生”按鈕。
  • 然後在隨後的對話框中,選擇“每天”,“每1天”和“無結束日期”,最後單擊“確定”。啟用任務重複
  • 以後根據您的需要更改任務主題和提醒。設置提醒
  • 最後單擊“保存並關閉”按鈕。
  1. 從現在開始,每次執行此任務的提醒警報時,Outlook都會自動計算昨天收到的電子郵件,然後將其記錄到Excel文件中,如以下屏幕截圖所示:用於電子郵件計數的Excel文件

避免永久性PST數據丟失

沒有人願意接受永久性的PST數據丟失。 但是,Outlook PST文件容易損壞。 因此,您應採取足夠的預防措施,例如進行一致且最新的PST數據備份並保持功能強大。 PST恢復 附近的工具,例如 DataNumen Outlook Repair.

作者簡介:

Shirley Zhang是的數據恢復專家 DataNumen,Inc.是數據恢復技術的全球領導者,包括 sql修復 和Outlook修復軟件產品。 欲了解更多信息,請訪問 萬維網。datanumen.COM

立即分享:

評論被關閉。