Excel中利用宏VBA实现多个工作薄文件合并的方法

2025-10-19 23:48:47

1、第1步(同文件夹):先把要合并的表文件(工作簿)都放到一个文件夹下

Excel中利用宏VBA实现多个工作薄文件合并的方法

2、第2步(新建表):新建一个“合并”表,用来应用宏和方合并后的数据;

Excel中利用宏VBA实现多个工作薄文件合并的方法

3、第3步(打开VBA编辑器):打开“合并”表,点击表名称出来鼠标右键后选【查看代码】或者直接快捷键[Alt+F11]

Excel中利用宏VBA实现多个工作薄文件合并的方法

4、第4步(写入代码):在弹窗中直接输入代码如下(由于代码太长不方便阅读,我把代码放到最后面了)

Excel中利用宏VBA实现多个工作薄文件合并的方法

5、第5步(执行代码):执行代码有两种方法,

是直接在VBA代码编辑器界面点击菜单【开始】-【执行子过程】;

二是先按快捷键ctrl+s保存代码,再关闭代码的界面,直接在表格窗口点击菜单【开发工具】-【宏】-【当前工作薄】-选择执行函数名CombineWorkbooks-【执行】

Excel中利用宏VBA实现多个工作薄文件合并的方法

Excel中利用宏VBA实现多个工作薄文件合并的方法

6、第6步(选择合并表文件):在弹出框中选择要合并的表文件-点击【打开】按钮-最后提示"合并成功完成!";

Excel中利用宏VBA实现多个工作薄文件合并的方法

Excel中利用宏VBA实现多个工作薄文件合并的方法

7、第7步:查看执行结果如下;

Excel中利用宏VBA实现多个工作薄文件合并的方法

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

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢