Excel批量合并不同工作簿的数据

 时间:2026-02-14 02:06:17

1、新建Excel文件,“另存为”:Excel启用宏的工作簿;

Excel批量合并不同工作簿的数据

2、把需要合并表放置同一个文件夹中; 在B2中填写文件夹路径(必填);在B3填汇总后文件名(不填默认为“00_数据汇总”)。 

Excel批量合并不同工作簿的数据

3、快捷键“Alt+F11”,打开VB编辑器,“插入”-“模块”;

Excel批量合并不同工作簿的数据

4、在新模块编辑栏中输入以下代码,如果同一工作簿中几个工作表都要合并时启用,代码中有此文字的行把最前面的'去掉,保留后面的'。

Sub 数据汇总()

Dim j

If Cells(3, 2) = "" Then

    j = "00_数据汇总"

Else

    j = Cells(3, 2)

End If

If Cells(2, 2) = "" Then

    MsgBox "请在B2单元格填写文件夹地址"

    Exit Sub

Else

    GoTo T

End If

T:

    pth = Cells(2, 2) & "\"

    fn = Dir(pth & "*.xlsx")

    Set newbk = Workbooks.Add

    Set sht = newbk.Sheets(1)

    k = 1

    Application.DisplayAlerts = False

    Do While fn <> ""

        Set Wb = Workbooks.Open(pth & fn)

        '        For i = 1 To Wb.Sheets.Count'同一工作簿中几个工作表都要合并时启用

        sht.Cells(k, 1) = fn & ":" & Wb.Sheets(1).Name

        Columns("A:E").Select

        Selection.EntireColumn.Hidden = False  '取消隐藏

        mc = Application.CountA(Sheets(1).Columns(5))

        Columns("A:A").Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove

        Range(Cells(2, 1), Cells(mc, 1)).Select

        Selection = Left(fn, InStrRev(fn, ".") - 1)

        k = k + 1

        Selection = fn

        Wb.Sheets(1).Rows("2:" & mc).Copy

        sht.Cells(k, 1).PasteSpecial xlPasteValuesAndNumberFormats

        k = sht.UsedRange.Rows.Count + 1

        '        Next'同一工作簿中几个工作表都要合并时启用

        Wb.Close False

        fn = Dir

    Loop

    newbk.SaveAs pth & j & ".xlsx"

    newbk.Close False

    Application.DisplayAlerts = True

End Sub

Excel批量合并不同工作簿的数据

5、按F5,开始自动合并到一个新的文件中。

  • 如何使用DGET函数快速完成对销售业绩的查询
  • 学校如何制作自己的在线成绩管理系统?
  • 使用Excel 2016工作簿如何打开编辑栏
  • excel工作表快速选定不连续单元格的方法与技巧
  • SAP QM如何修改检验批的检验类型描述
  • 热门搜索
    广西旅游攻略 文华学院怎么样 北汽绅宝x25怎么样 李白生平简介 胡风简介 帝王攻略 疯狂派对攻略 哥本哈根减肥法原理 减肥最有效的方法 血源诅咒攻略