我希望获取多个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;。最终的产品工作簿然后空了。
任何建议都将不胜感激。感谢