如何快速将投票统计数据从 Outlook 电子邮件导出到 Excel 工作表

立即分享:

如果您发送了一封带有投票按钮的电子邮件,在收件人回复后,您可能需要统计投票结果并将其导出到 Excel 工作表中。因此,在本文中,我们将教您如何快速完成此操作。

Outlook 非常强大,甚至提供了“投票”功能。 我之前的文章“熟练使用 MS Outlook 进行投票已经教会了如何有效地使用它。此外,大多数情况下,投票结束后,您可能出于某些原因(例如想要打印统计数据)将投票统计数据导出到 Excel 工作表中。但 Outlook 默认情况下不支持此功能。因此,在下文中,我们将教您如何轻松实现这一点。

快速将投票统计数据从 Outlook 电子邮件导出到 Excel 工作表

将电子邮件中的投票统计数据导出到 Excel 工作表

  1. 首先,启动您的 Outlook 应用程序。
  2. 然后,您应该在 Outlook 主窗口中按“Alt + F11”键按钮。
  3. 接下来,在“Microsoft Visual Basic for Applications”窗口中,启用“Microsoft Excel 对象库”。单击“工具”>“引用”。然后在弹出的对话框中,选中“Microsoft Excel 对象库”前面的复选框,最后单击“确定”。
  4. 之后,您可以插入一个新模块或打开一个未使用的模块。
  5. 随后,将以下 VBA 代码复制并粘贴到该模块中。
Sub ExportVotingStatistics _Excel ()
    Dim objMail As Outlook.MailItem
    Dim objRecipient As Outlook.recipient
    Dim objVoteDictionary As Object
    Dim varVotingCounts As Variant
    Dim varVotingOptions As Variant
    Dim varVotingOption As Variant
    Dim i As Long
    Dim objExcelApp As Excel.Application
    Dim objExcelWorkbook As Excel.Workbook
    Dim objExcelWorksheet As Excel.Worksheet
    Dim nRow As Integer
 
    Set objMail = Application.ActiveExplorer.Selection(1)
 
    'Create a new excel worksheet
    Set objExcelApp = CreateObject("Excel.Application")
    Set objExcelWorkbook = objExcelApp.Workbooks.Add
    Set objExcelWorksheet = objExcelWorkbook.Sheets(1)
 
    'Fill in the predefined values
    With objExcelWorksheet
         .Cells.Font.Name = "Cambria"
         .Cells(1, 1) = "Voting Results for Email:"
         .Cells(1, 2) = Chr(34) & objMail.Subject & Chr(34)
         .Cells(3, 1) = "Voting Options"
         .Cells(3, 2) = "Voting Counts"
    End With
 
    Set objVoteDictionary = CreateObject("Scripting.Dictionary")
    'get the default voting options
    varVotingOptions = Split(objMail.VotingOptions, ";")
    'Add the voting responses to the dictionary
    For Each varVotingOption In varVotingOptions
        objVoteDictionary.Add varVotingOption, 0
    Next
    'Add a custom voting response - "No Reply"
    objVoteDictionary.Add "No Reply", 0
 
    'Process the all voting responses
    For Each objRecipient In objMail.Recipients
        If objRecipient.TrackingStatus = olTrackingReplied Then
           If objVoteDictionary.Exists(objRecipient.AutoResponse) Then
              objVoteDictionary.Item(objRecipient.AutoResponse) = objVoteDictionary.Item(objRecipient.AutoResponse) + 1
           Else
              objVoteDictionary.Add objRecipient.AutoResponse, 1
           End If
        Else
           objVoteDictionary.Item("No Reply") = objVoteDictionary.Item("No Reply") + 1
        End If
    Next
 
    'Get the voting options and vote counts
    varVotingOptions = objVoteDictionary.Keys
    varVotingCounts = objVoteDictionary.Items
 
    'Fill in the values in specific cells
    nRow = 4
    For i = LBound(varVotingOptions) To UBound(varVotingOptions)
        With objExcelWorksheet
             .Cells(nRow, 1) = varVotingOptions(i)
             .Cells(nRow, 2) = varVotingCounts(i)
        End With
        nRow = nRow + 1
    Next
 
    'Save the new Excel file
    objExcelWorksheet.Columns("A:B").AutoFit
    strExcelFile = "E:\Voting Results " & Format(Now, "YYYY-MM-DD hh-mm-ss") & ".xlsx"
    objExcelWorkbook.Close True, strExcelFile

    MsgBox "Complete!", vbExclamation
End Sub

VBA 代码 - 将投票统计数据从 Outlook 电子邮件导出到 Excel 工作表

  1. 之后,为了访问方便,最好将新宏添加到快速访问工具栏中。
  2. 最终,您可以尝试一下。
  • 首先,选择包含投票按钮的源电子邮件。
  • 然后单击快速访问工具栏中的宏按钮。
  • 此宏完成运行后,您可以浏览到预定义的本地文件夹,您将在其中看到一个新的 Excel 工作簿。
  • 打开此 Excel 工作簿。 现在您将看到投票统计信息,如下图所示:导出的投票统计数据

没有人可以彻底避免 Outlook 错误

尽管 Outlook 具有多种功能,但没有这样的功能可以帮助我们避免 Outlook 错误。 各种因素都可能导致 Outlook 错误。 例如,如果您经常不正确地退出 Outlook,您很可能会遭受 PST腐败. 在这种情况下,您别无选择,只能使用一些强大的工具来挽救您的 PST 文件,例如 DataNumen Outlook Repair. 由于其高回收率,它赢得了很多荣誉。

作者简介:

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

立即分享:

评论被关闭。