0

次のコードを使用して、テンプレート ファイルから自動的に生成されたワークシートにシートをコピーしようとしています。

 Set wb = Workbooks("Generated.xlsx")
For Each sh In Workbooks("TemplateASA.xlsx").Worksheets
   sh.Copy After:=wb.Sheets(wb.Sheets.Count)
Next sh

しかし、コンパイル時にこのエラーが発生し続けます: Run-time error '9' Subscript out of range

4

1 に答える 1

0

これにより、問題を見つけやすくなります。上記のように、ブックはまだ開いていないと思います。私が正しければ、Set wbTemplate = Workbooks("TemplateASA.xlsx")回線は失敗します。これはテストされていません-動作しない場合はお知らせください。

Sub CopyWorksheets()

Dim wbGenerated as Workbook, wbTemplate as Workbook
Dim ws as Worksheet

Set wbGenerated = Workbooks("Generated.xlsx")
Set wbTemplate = Workbooks("TemplateASA.xlsx") 'If this line fails, remove it and uncomment the following line
' Set wbTemplate = Workbooks.Open("TemplateASA.xlsx", ,True) ' Opens as read only
For Each sh In wbTemplate.Worksheets
   sh.Copy After:=wbGenerated.Sheets(wbGenerated.Sheets.Count)
Next sh
'wbTemplate.Close(False) 'Only required if you opened wbTemplate above

End sub
于 2013-01-22T10:51:30.563 に答える