合并许多工作簿(Microsoft Excel)
乔伊遇到了一个问题,将许多工作簿合并在一起。大多数工作簿(其中约200个,都在一个文件夹中)每个都包含一个工作表,但有些包含更多。构成每个工作簿的工作表都需要添加到单个工作簿中。
进行这种规模的合并的最简单方法(特别是如果您必须经常进行合并)是使用宏。下面的宏显示一个对话框,要求您选择要合并的文件。 (您可以在单击每个工作簿时按住Ctrl键来选择多个工作簿。)它循环遍历您选择的列表,打开每个工作簿并将其所有工作表随代码一起移到工作簿的末尾。
Sub CombineWorkbooks() Dim FilesToOpen Dim x As Integer On Error GoTo ErrHandler Application.ScreenUpdating = False FilesToOpen = Application.GetOpenFilename _ (FileFilter:="Microsoft Excel Files (.xls?), .xls?", _ MultiSelect:=True, Title:="Files to Merge") If TypeName(FilesToOpen) = "Boolean" Then MsgBox "No Files were selected" GoTo ExitHandler End If x = 1 While x <= UBound(FilesToOpen) Workbooks.Open FileName:=FilesToOpen(x) Sheets().Move After:=ThisWorkbook.Sheets _ (ThisWorkbook.Sheets.Count) x = x + 1 Wend ExitHandler: Application.ScreenUpdating = True Exit Sub ErrHandler: MsgBox Err.Description Resume ExitHandler End Sub
在将工作表添加到工作簿末尾的过程中,当检测到重复的工作表名称时,Excel将自动附加(2),(3)等。本书中引用其他表格的所有公式也将更新,以反映新名称。
注意:
如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。
_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。
本技巧(12652)适用于Microsoft Excel 2007、2010、2013、2016、2019和Office 365中的Excel。您可以在此处为Excel的较早菜单界面找到此技巧的版本: