Excel实用宏系列02:合并多个Excel文件

 时间:2026-02-14 11:38:02

1、按住Alt + F11打开VBE编辑窗口,依次点击“插入->模块”插入一个新模块。

2、在新模块中复制如下代码:

Option Explicit


Sub HzWb()

    Dim bt As Range, r As Long, c As Long

    r = 1    '1 是表头的行数

    c = 7    '7 是表头的列数

    Dim wt As Worksheet

    Set wt = ThisWorkbook.Worksheets(1)    '将汇总表赋给变量wt

    wt.Rows(r + 1 & ":1048576").ClearContents  ' 清除汇总表中原表数据,只保留表头

    Application.ScreenUpdating = False

    Dim FileName As String, sht As Worksheet, wb As Workbook

    Dim Erow As Long, fn As String, arr As Variant

    FileName = Dir(ThisWorkbook.Path & "\*.xlsx")

    Do While FileName <> ""

        If FileName <> ThisWorkbook.Name Then        ' 判断文件是否是汇总数据的工作簿

            Erow = wt.Range("A1").CurrentRegion.Rows.Count + 1     ' 取得汇总表中第一条空行行号

            fn = ThisWorkbook.Path & "\" & FileName     '将第1个要汇总的工作簿名称赋给变量fn

            Set wb = GetObject(fn)        ' 将变量fn 代表的工作簿对象赋给变量wb

            Set sht = wb.Worksheets(1)    ' 将要汇总的工作表赋给变量sht

            ' 将工作表中要汇总的记录保存在数组arr里

            arr = sht.Range(sht.Cells(r + 1, "A"), sht.Cells(1048576, "B").End(xlUp).Offset(0, 5))

            ' 将数组arr 中的数据写入工作表

            wt.Cells(Erow, "A").Resize(UBound(arr, 1), UBound(arr, 2)) = arr

            wb.Close False

        End If

        FileName = Dir    ' 用Dir 函数取得其他文件名,并赋给变量

    Loop

    Application.ScreenUpdating = True

End Sub

3、根据备注修改使代码适用具体工作任务,将以上代码按照需求更改后运行即可合并多个Excel文件。(再次强调代码中的标点符号必须是英文标点符号。)

4、修改完代码后按F5键执行或者回到工作表界面按Alt +F8执行均可。具体的打开VBE界面以及执行方法在这里就不附上图片了,具体参考引用经验。

  • 在VBA中,正则的实例应用(15)——零宽断言
  • 用Excel的宏和超链接做出简单的sheet表中的转换
  • 怎么用VBA宏代码给单元格加上万元作为单位
  • Excel 2003如何输入并集符号
  • 在VBA中如何删除文件?
  • 热门搜索
    路由器登录 旅游百事通官网 怎么去鱼尾纹 厦门旅游景点大全 脸上长痘痘怎么去除 如何养仓鼠 江苏哪里好玩 抖音如何涨粉 广州南站在哪里 如何接吻