如何在 Outlook 中快速合并和导出多个 Excel 工作簿附件到一个工作簿

立即分享:

当你收到一封附有多个Excel工作簿的邮件时,如果你想查看单个工作簿中所有工作簿的内容,可以使用本文的方式。 它将多个 Excel 工作簿附件导出到一个工作簿。

要在一个 Excel 工作簿中查看电子邮件的所有 Excel 附件,您首先需要将这些附件合并并导出到一个工作簿中。与其手动操作,不如使用以下方法轻松实现。本文将教您如何使用 VBA 代码来完成此操作。有关如何使用 VBA,您可以参考这篇文章“如何在 Outlook 中运行 VBA 代码。

在 Outlook 中快速合并和导出多个 Excel 工作簿附件到一个工作簿

将多个 Excel 工作簿附件合并并导出到一个工作簿中

  1. 首先,启动 Outlook 应用程序。
  2. 然后,访问 Outlook VBA 编辑器。
  3. 接下来,在新的“Microsoft Visual Basic for Applications”窗口中,您需要启用“MS Excel对象库”,有关相关信息,您可以参考以下文章——“如何在 VBA 中添加对象库引用。
  4. 随后,将以下 VBA 代码复制到项目或模块中。
Sub CombineMultipleExcelWorkbookAttachmensIntoOne()
    Dim objSelectedAttachments As Outlook.AttachmentSelection
    Dim objAttachment As Outlook.Attachment
    Dim strTempFolder As String
    Dim objExcelApp As Excel.Application
    Dim objExcelWorkbook As Excel.Workbook
    Dim objExcelWorksheet As Excel.Worksheet
    Dim strFile As String
    Dim objCurrentSheet As Excel.Worksheet
    Dim objCurrentBook As Excel.Workbook
    Dim objSheet As Excel.Worksheet
    Dim objFileSystem As Object
 
    On Error Resume Next
    'Create a new temp folder
    strTempFolder = "E:\Temp" & Format(Now, "yyymmddhhmmss") & "\"
    MkDir (strTempFolder)
 
    'Save selected attachments
    Set objSelectedAttachments = Outlook.Application.ActiveExplorer.AttachmentSelection
    For Each objAttachment In objSelectedAttachments
        objAttachment.SaveAsFile (strTempFolder & objAttachment.FileName)
    Next
 
    'Copy all the workbooks into a new file
    Set objExcelApp = CreateObject("Excel.Application")
    objExcelApp.Visible = True
    Set objExcelWorkbook = objExcelApp.Workbooks.Add
    objExcelWorkbook.Activate
 
    strFile = Dir(strTempFolder)
    Do While strFile <> ""
       Set objCurrentBook = objExcelApp.Workbooks.Open(strTempFolder & strFile)
       For Each objCurrentSheet In objCurrentBook.Sheets
           objCurrentSheet.Copy Before:=objExcelWorkbook.Sheets(1)
       Next
 
       objExcelApp.Workbooks(strFile).Close
       strFile = Dir()
    Loop
 
    'Remove empty sheets
    objExcelApp.DisplayAlerts = False
    For Each objSheet In objExcelWorkbook.Worksheets
        If objExcelApp.WorksheetFunction.CountA(objSheet.Cells) = 0 Then
           objSheet.Delete
        End If
    Next
    objExcelApp.DisplayAlerts = True
 
    'Delete the temp folder
    Set objFileSystem = CreateObject("Scripting.FileSystemObject")
    objFileSystem.DeleteFolder (strTempFolder)
End Sub

VBA 代码 - 将多个 Excel 工作簿附件合并和导出到一个工作簿中

  1. 之后,您可以关闭窗口并将新宏添加到快速访问工具栏。
  2. 稍后,在邮件列表中选择源电子邮件。
  3. 然后,按住“Ctrl”键选择要导出的 Excel 工作簿附件。
  4. 接下来,单击快速访问工具栏中的宏按钮。快速访问工具栏中的运行宏按钮
  5. 宏完成后,将显示一个新的 Excel 工作簿。 它将包含先前选择的 Excel 工作簿的内容。导出的 Excel 工作簿

求助于更强大的外部维修工具

当遇到 Outlook 程序损坏时,大多数用户倾向于使用…… 收件箱维修工具 首先尝试一下。 但是,在严重损坏的情况下,它不会有太大帮助。 到那时,您别无选择,只能借助外部可靠且经验丰富的工具,例如 DataNumen Outlook Repair.

作者简介:

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

立即分享:

评论被关闭。