将多个工作簿合并到一个工作簿中

时间:2016-08-23 15:27:03

标签: excel vba excel-vba

我希望获取多个Excel工作簿(每个工作表都有1个工作表)并将它们合并到一个工作簿中。

所以目前我有9个工作簿,每个工作表有1个工作表,我想最终得到1个工作簿,有9个工作表。

这是我一直在使用的代码:

Function MergeBooks(Path As String)
    Set NewBook = Workbooks.Add
    With NewBook
        .Title = "Merged Data"
        .Subject = "End User Data"
        .SaveAs Filename:=Path & "mergedFinal.xlsx", FileFormat:=xlOpenXMLWorkbook

    End With

    Filename = Dir(Path & "*.xlsx")

    Do While Filename <> ""
        Workbooks.Open Filename:=Path & Filename, ReadOnly:=True
        For Each Sheet In ActiveWorkbook.Sheets
            Sheet.Copy After:=NewBook.Sheets(1)
        Next Sheet

    Workbooks(Filename).Close
    Filename = Dir()
    Loop

    NewBook.Save
End Function

在我看来,它似乎遵循正确的步骤,我打算从PowerShell运行它,到目前为止它运行并生成新文件,我可以看到它循环遍历文件夹中的文件,所以这些正在被选中很好。但是,当要在第15行复制工作表时,会产生错误&#34;内存不足&#34;。最终的产品工作簿然后空了。

任何建议都将不胜感激。感谢

0 个答案:

没有答案