2016-10-01 156 views
-1

我在Excel中創建了一個簡單的宏以打開另一個工作簿並將工作表複製到工作簿中。這對於普通的xls文件非常適用,但是當我嘗試在包含宏的.xltm文件上使用它時,由於它包含的宏,我得到了一個越​​界錯誤。VBA:從包含宏的其他工作簿導入工作表

在Excel vba中是否有任何可能的方式來打開一個工作簿,並在其中包含宏的複製和工作表?

我的代碼

Dim directory As String, fileName As String, sheet As Worksheet, total As Integer 
Application.ScreenUpdating = False 
Application.DisplayAlerts = False 
directory = "c:\" 
fileName = Dir(directory & "book1.xls") 
Workbooks.Open (directory & fileName) 
For Each sheet In Workbooks(fileName).Worksheets 
    total = ThisWorkbook.Worksheets.Count 
    Workbooks(fileName).Worksheets(sheet.Name).Copy after:=ThisWorkbook.Worksheets(total) 

Next sheet 

謝謝你們,

+0

只需指出'For Each sheet'循環中,您可以簡單地使用'sheet'而不是'Workbooks(fileName).Worksheets(sheet.Name)' – user3598756

回答

0

難道有話跟你的

fileName = Dir(directory & "book1.xls") 

當您使用XLSM文件呢?

+1

也許您必須將文件另存爲.xlsm在複印紙張之前。 –

+0

你好。謝謝回覆。我確實將文件名更改爲有問題的文件,其中包含一個按鈕和一個宏,在其中添加了一次點擊的頁面。調試器停止在試圖添加新工作表的導入工作表的行上。 –

相關問題