如何将每个工作表的多个 Excel 文件聚合(合并)到一个主文件中?

时间:2021-05-17 01:59:14

标签: excel merge

我试图合并多个 excel 文件(总共 114 个),每个文件都有多个工作表(总共 4 个),名称完全相同,如下例所示:

1. File A: Sheet Dog / Sheet Cat / Sheet Bird
2. File B: Sheet Dog / Sheet Cat / Sheet Bird
3. File C: Sheet Dog / Sheet Cat / Sheet Bird
4. File D: Sheet Dog / Sheet Cat / Sheet Bird
.
.
.
.

我想要实现的是合并所有这些文件,并按每个sheet聚合数据(垂直合并),Sheet Dog只与Sheet Dog合并,sheet cat只与cat合并。最终,得到一个合并所有工作表的主 excel 文件。

我已经尝试过 Get Data -> From File -> From Folder 但我什么都没有得到,而且这似乎不是我想要的?我想知道是否有任何可用的代码或技术可以系统地合并?感谢您的帮助,任何建议都非常感谢。


我在其他答案中找到了此代码,但仍在努力对其进行自定义:

Option Explicit

Private Sub CommandButton1_Click()

Dim directory As String, fileName As String, sheet As Worksheet, total As Integer
Dim WrdArray() As String

Application.ScreenUpdating = False
Application.DisplayAlerts = False

directory = "C:\XXXX"
fileName = Dir(directory & "*.xl??")

Do While fileName <> ""
    Workbooks.Open (directory & fileName)
        WrdArray() = Split(fileName, ".")
        For Each sheet In Workbooks(fileName).Worksheets
        Workbooks(fileName).ActiveSheet.Name = WrdArray(0)
            total = Workbooks("import-sheets.xlsm").Worksheets.Count
            Workbooks(fileName).Worksheets(sheet.Name).Copy after:=Workbooks("import-sheets.xlsm").Worksheets(total)

            GoTo exitFor:

        Next sheet

exitFor:
    Workbooks(fileName).Close
    fileName = Dir()
Loop

Application.ScreenUpdating = True
Application.DisplayAlerts = True

End Sub
Sub MergeAcrossSheets()

End Sub

我已将 directory 编辑到包含所有 excel 文件的文件夹中,并且还在同一文件夹中创建了一个 XLSM import-sheets.xlsm 并将此宏代码放入模块中,然后运行它但什么也没发生。谁能指出我做错了什么?

0 个答案:

没有答案