如何在 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 数据备份并保持强大的 太平洋标准时间恢复 附近的工具,例如 DataNumen Outlook Repair.

作者简介:

Shirley Zhang 是一位数据恢复专家 DataNumen, Inc.,它是数据恢复技术领域的世界领先者,包括 sql修复 和 outlook 修复软件产品。 欲了解更多信息,请访问 datanumen.com

立即分享:

评论被关闭。