Excel中利用宏VBA实现多个工作薄文件合并的方法
1、第1步(同文件夹):先把要合并的表文件(工作簿)都放到一个文件夹下
2、第2步(新建表):新建一个“合并”表,用来应用宏和方合并后的数据;
3、第3步(打开VBA编辑器):打开“合并”表,点击表名称出来鼠标右键后选【查看代码】或者直接快捷键[Alt+F11]
4、第4步(写入代码):在弹窗中直接输入代码如下(由于代码太长不方便阅读,我把代码放到最后面了)
5、第5步(执行代码):执行代码有两种方法,
一是直接在VBA代码编辑器界面点击菜单【开始】-【执行子过程】;
二是先按快捷键ctrl+s保存代码,再关闭代码的界面,直接在表格窗口点击菜单【开发工具】-【宏】-【当前工作薄】-选择执行函数名CombineWorkbooks-【执行】
6、第6步(选择合并表文件):在弹出框中选择要合并的表文件-点击【打开】按钮-最后提示"合并成功完成!";
7、第7步:查看执行结果如下;
8、代码如下:
'注意:此代码必须应用于被合并的表文件夹下才能执行成功
Sub CombineWorkbooks() '多个工作簿合并到一个工作簿中
Dim FilesToOpen, ft
Dim X As Integer
Application.ScreenUpdating = False
On Error GoTo errhandler
FilesToOpen = Application.GetOpenFilename _
(FileFilter:="Micrsofe Excel文件(*.xlsx), *.xls", _
MultiSelect:=True, Title:="要合并的文件")
If TypeName(FilesToOpen) = "boolean" Then
MsgBox "没有选定文件"
'GoTo errhandler
End If
X = 1
While X <= UBound(FilesToOpen)
Set wk = Workbooks.Open(Filename:=FilesToOpen(X))
wk.Sheets().Move After:=ThisWorkbook.Sheets _
(ThisWorkbook.Sheets.Count)
X = X + 1
Wend
MsgBox "合并成功完成!"
errhandler:
If Err.Description <> "" Then
MsgBox "【合并失败】" & Err.Description
'Resume errhandler
End If
End Sub