You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

修改VBA代码实现合并Excel工作簿所有工作表的技术问询

修改VBA代码实现合并所有工作表到汇总工作簿

我来帮你搞定这个问题——你只需要在打开目标工作簿之后,添加一个遍历该工作簿所有工作表的循环,替换掉原来只操作第一个工作表的代码就行。

先给你补全并修改后的完整代码,我会标注出新增的关键部分:

Sub MergeSelectedWorkbooks()
    Dim SummarySheet As Worksheet
    Dim SelectedFiles() As Variant
    Dim NRow As Long
    Dim FileName As Variant
    Dim SourceWorkbook As Workbook
    Dim SourceSheet As Worksheet ' 用于遍历每个工作表的变量
    
    ' 初始化汇总表(添加到当前工作簿最后)
    Set SummarySheet = ThisWorkbook.Worksheets.Add(After:=ThisWorkbook.Worksheets(ThisWorkbook.Worksheets.Count))
    SummarySheet.Name = "汇总表"
    NRow = 1 ' 汇总表的起始行
    
    ' 让用户选择要合并的Excel文件
    SelectedFiles = Application.GetOpenFilename( _
        FileFilter:="Excel 文件 (*.xlsx;*.xls;*.xlsm)", _
        MultiSelect:=True)
    
    ' 处理用户取消选择的情况
    If TypeName(SelectedFiles) = "Boolean" Then
        MsgBox "未选择任何文件,操作取消!", vbExclamation
        Exit Sub
    End If
    
    ' 遍历每个选中的工作簿
    For Each FileName In SelectedFiles
        ' 以只读模式打开源工作簿,避免锁定文件
        Set SourceWorkbook = Workbooks.Open(FileName, ReadOnly:=True)
        
        ' --- 这里就是你需要插入的遍历所有工作表的代码 ---
        For Each SourceSheet In SourceWorkbook.Worksheets
            ' 复制当前工作表的已用区域到汇总表的指定位置
            SourceSheet.UsedRange.Copy Destination:=SummarySheet.Cells(NRow, 1)
            ' 更新汇总表的下一行起始位置(跳过已复制的行)
            NRow = NRow + SourceSheet.UsedRange.Rows.Count
        Next SourceSheet
        ' --- 遍历代码结束 ---
        
        ' 关闭源工作簿,不保存任何更改
        SourceWorkbook.Close SaveChanges:=False
    Next FileName
    
    ' 自动调整汇总表的列宽,让内容更美观
    SummarySheet.Columns.AutoFit
    MsgBox "所有工作簿的工作表合并完成!", vbInformation
End Sub

关键修改说明:

  • 替换单工作表操作为循环遍历:把原来只针对SourceWorkbook.Worksheets(1)的代码,换成For Each SourceSheet In SourceWorkbook.Worksheets的循环,这样就能逐个处理目标工作簿里的每一张工作表。
  • 增加健壮性处理:比如判断用户是否取消了文件选择、用只读模式打开源文件避免锁定、自动调整列宽等,让代码更实用。
  • 变量声明调整:把FileName的类型改成Variant,因为Application.GetOpenFilename返回的是Variant类型的数组,避免类型不匹配的错误。

内容的提问来源于stack exchange,提问作者Andrew

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:29:32