多个excel工作簿、工作表合并

功能描述:合并当前文件夹下面所有excel,包括每一个工作簿与每一个工作簿下面的每一个工作表

步骤:

1、所有表的每个sheet需要表头一致;

2、所有表需要放在一个文件夹下面;

3、该程序会合并当前文件夹下面所有后缀名为指定后缀名的数据;

4、在该文件夹下面新建一个同样后缀名的excel;

5、打开新建的表格,快捷键:Alt + F11   打开VBA界面;

6、复制以下代码

7、快捷键F5 运行

Sub Macro1()
    Dim MyPath$, MyName$, sh As Worksheet, sht As Worksheet
    Application.ScreenUpdating = False
    Set sh = ActiveSheet
    MyPath = ThisWorkbook.Path & "\"
    MyName = Dir(MyPath & "*.xlsx")
    [a1].CurrentRegion.Offset(1).Clear
    Do While MyName <> ""
        If MyName <> ThisWorkbook.Name Then
            With GetObject(MyPath & MyName)
                For Each sht In .Sheets
                    If sht.[a1].CurrentRegion.Rows.Count > 1 Then
                        lr = sh.[a1].CurrentRegion.Rows.Count + 1
                        r = sht.[a1].CurrentRegion.Rows.Count - 1
                        sh.Cells(lr, 1).Resize(r) = MyName
                        sh.Cells(lr, 2).Resize(r) = sht.Name
                        sht.[a1].CurrentRegion.Offset(1).Copy sh.Cells(lr, 3)
                    End If
                Next
                .Close False
            End With
        End If
        MyName = Dir
    Loop
    Application.ScreenUpdating = True
    MsgBox "ok"
End Sub
发布了35 篇原创文章 · 获赞 7 · 访问量 3349

猜你喜欢

转载自blog.csdn.net/Hjchidaozhe/article/details/103420000