excel - 如何将每张工作表的多个 excel 文件聚合(合并)到一个主文件中?
问题描述
我试图合并多个 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 Dog 仅与 Sheet Dog 合并,而工作表 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文件的文件夹,并且我还在import-sheets.xlsm
同一个文件夹中创建了一个XLSM并将这个宏代码放入模块中,然后我运行它但没有任何反应。谁能指出我做错了什么?