2014-01-27 69 views
1

我需要編寫一個宏,將所有工作表從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代碼成功合併工作表到主簿,但有兩個錯誤框出現。沒有找到

  1. 文件:C:\ Users \用戶名\ AppData的\本地的\ Temp \ VBF10tmp
  2. 運行時錯誤 '1004':失敗的工作表類的複製方法。

的錯誤,因爲這行代碼的發生: Sheet.Copy後:= ThisWorkbook.Sheets(1)

我想能夠在同一時間運行此宏和另一個宏但錯誤阻止了這一點。 **我如何解決這些錯誤? **

回答

1

我收到了,因爲兩大誤區主工作簿與ISOHODataCopy1.xls工作文件位於同一文件夾中所以它試圖從本質上覆制自己。當我將主工作簿從文件夾中取出時,宏完美地工作。

0

您是否知道您的源數據excel文件是否包含已定義的名稱?下面可能會在MS幫助給你一個線索:

Microsoft helps

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 
+0

我更改了代碼後收到此錯誤:運行時錯誤'424':需要對象。該行代碼發生錯誤:Worksheet.Copy After:= ThisWorkbook.Worksheets(1)。 – user3242245

+0

我的錯誤,複製粘貼技能差。 –

相關問題