我需要编写一个宏,将ISOHODataCopy1.xls工作簿中的所有工作表合并到zmastertablestest1.xlsm工作簿。它们是Source_and_Master_Data文件夹中唯一的两个文件。我一直在使用这段代码:
Sub GetISOSheets()
Path = "C:\Users\turner\Desktop\Source_and_Master_Data\"
Filename = Dir(Path & "*.xls")
Do While Filename <> ""
Workbooks.Open Filename:=Path & Filename, ReadOnly:=True
For Each Sheet In ActiveWorkbook.Sheets
Sheet.Copy After:=ThisWorkbook.Sheets(1)
Next Sheet
Workbooks(Filename).Close
Filename = Dir()
Loop
End Sub
此vba代码成功将工作表合并到主工作簿,但会出现两个错误框。
由于以下代码行而发生错误: Sheet.Copy After:= ThisWorkbook.Sheets(1)
我希望能够同时运行此宏和另一个宏,但错误阻止了这一点。 **如何解决这些错误? **
答案 0 :(得分:1)
我收到了两个错误,因为主工作簿与ISOHODataCopy1.xls工作簿位于同一个文件夹中,因此它本质上试图复制自己。当我从文件夹中取出主工作簿时,宏工作得很好。
答案 1 :(得分:0)
您知道您的源数据excel文件是否包含已定义的名称?下面的MS帮助可能会给你一个线索:
答案 2 :(得分:0)
尝试替换:
For Each Sheet In ActiveWorkbook.Sheets
Sheet.Copy After:=ThisWorkbook.Sheets(1)
Next Sheet
:
For Each thisSheet In ActiveWorkbook.Worksheets
thisSheet.Copy After:=ThisWorkbook.Worksheets(1)
Next thisSheet