下图所示:一个文件夹下面有多个excel工作薄,每个工作薄文件下面有不固定张数的工作表。比如有的文件只有一张工作,有的文件是多张工作表。
现在的问题,如何将这些多个文件实现合并工作表。将这些所有工作表全部合并到同一张工作表。
下图所示:一个文件夹下面有多个excel工作薄,每个工作薄文件下面有不固定张数的工作表。比如有的文件只有一张工作,有的文件是多张工作表。
现在的问题,如何将这些多个文件实现合并工作表。将这些所有工作表全部合并到同一张工作表。一般的做法,通过“移动或复制”实现合并工作表。要高效,可以使用VBA代码来实现合并工作表。
合并工作表操作步骤:
新建一个excel文件,按ALT+F11,打开VBE编辑器,复制下面的代码,然后运行,选择文件夹下面的所有excel文件,执行合并工作表。Sub合并工作簿()
DimFilesToOpen,wbAsWorkbook,shtAsWorksheet
DimxAsInteger
OnErrorGoToErrHandler
Application.ScreenUpdating=False
FilesToOpen=Application.GetOpenFilename_
(FileFilter:="MicrosoftExcelFiles(*.xls),*.xls",_
MultiSelect:=True,Title:="FilestoMerge")
IfTypeName(FilesToOpen)="Boolean"Then
MsgBox"NoFileswereselected"
GoToExitHandler
EndIf
x=1
Whilex<=UBound(FilesToOpen)
IfFilesToOpen(x)<>ThisWorkbook.FullNameThen
Setwb=Workbooks.Open(Filename:=FilesToOpen(x))
ForEachshtInwb.Sheets
sht.CopyAfter:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
Next
wb.Close
EndIf
x=x+1
Wend
ExitHandler:
Application.ScreenUpdating=True
ExitSub
ErrHandler:
MsgBoxErr.Description
ResumeExitHandler
EndSub
说明:上面代码是合并xlsx文件,如果是合并excel2007的文件,需要将:FileFilter:="MicrosoftExcelFiles(*.xls),*.xls",xls改为.xlsx。