将Excel工作簿组合成一个工作台

时间:2015-06-21 17:23:04

标签: excel vba excel-vba

我有50个工作簿,每个工作簿有7个工作表。现在我需要以这样的方式组合它们,即新工作簿应该有7个工作表,每个工作表应该包含来自所有50个工作簿的相应数据。

例如:新工作簿的Worksheet1必须包含来自50个工作簿的所有sheet1的数据。类似地,Worksheet2应该包含来自所有50个工作簿的sheet2的所有数据,依此类推......直到sheet7。

1 个答案:

答案 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个不同的工作表。