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

将多个 Excel 工作簿附件合并并导出到一个工作簿中
- 首先,启动 Outlook 应用程序。
- 然后,访问 Outlook VBA 编辑器。
- 接下来,在新的“Microsoft Visual Basic for Applications”窗口中,您需要启用“MS Excel对象库”,有关相关信息,您可以参考以下文章——“如何在 VBA 中添加对象库引用。
- 随后,将以下 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
- 之后,您可以关闭窗口并将新宏添加到快速访问工具栏。
- 稍后,在邮件列表中选择源电子邮件。
- 然后,按住“Ctrl”键选择要导出的 Excel 工作簿附件。
- 接下来,单击快速访问工具栏中的宏按钮。
- 宏完成后,将显示一个新的 Excel 工作簿。 它将包含先前选择的 Excel 工作簿的内容。
求助于更强大的外部维修工具
当遇到 Outlook 程序损坏时,大多数用户倾向于使用…… 收件箱维修工具 首先尝试一下。 但是,在严重损坏的情况下,它不会有太大帮助。 到那时,您别无选择,只能借助外部可靠且经验丰富的工具,例如 DataNumen Outlook Repair.
作者简介:
Shirley Zhang 是一位数据恢复专家 DataNumen, Inc.,它是数据恢复技术领域的世界领先者,包括 中密度纤维板恢复 和 outlook 修复软件产品。 欲了解更多信息,请访问 datanumen.com


