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

2025-10-09 09:26:55

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,开始自动合并到一个新的文件中。

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