我有50个工作簿,每个工作簿有7个工作表。现在我需要以这样的方式组合它们,即新工作簿应该有7个工作表,每个工作表应该包含来自所有50个工作簿的相应数据。
例如:新工作簿的Worksheet1必须包含来自50个工作簿的所有sheet1的数据。类似地,Worksheet2应该包含来自所有50个工作簿的sheet2的所有数据,依此类推......直到sheet7。
答案 0 :(得分:0)
Sub simpleXlsMerger()
Dim bookList As Workbook
Dim mergeObj As Object,dirObj As Object,filesObj As Object,everyObj As Object
Application.ScreenUpdating = False
设置mergeObj = CreateObject(" Scripting.FileSystemObject")
'在此处更改Excel文件的文件夹路径
设置dirObj = mergeObj.Getfolder(" C:\ Users \ 607182604 \ desktop \ Heinz Jun' 15 MI Template \ consolidated")
设置filesObj = dirObj.Files
For Each everyObj In filesObj
设置bookList = Workbooks.Open(everyObj)
范围(" A2:IV"&范围(" A65536")。结束(xlUp).Row)。复制
ThisWorkbook.Worksheets(1).Activate
范围(" A65536")。结束(xlUp)。偏移(1,0).PasteSpecial
Application.CutCopyMode = False
bookList.Close
下一步
End Sub
@dougGlancy和@omegastripes我希望数据合并逐行,没有任何差距,是的,所有工作簿都在同一个文件夹中。 我面临的问题是它只是合并了每个工作簿的第一个工作表。我想要的是,它应该将所有50个excel文件的数据与7个工作表合并到一个合并的工作簿中,但是7个不同的工作表。