以下代码有时(但并非总是)有效。我看过类似的示例,但是我需要以特定的方式工作(将所有工作表从“母版”复制到活动工作簿中。)
我正在尝试将工作表从“主”工作簿(“ MasterWorkbook.xlsm”电子表格)复制到我的活动工作簿(.xlsx文件)中。我正在从活动的工作簿中运行宏。我也打开了“大师”工作簿。
Sub CopySheetsFromMaster()
Dim ToWorkbook As Workbook
Set ToWorkbook = ActiveWorkbook
Application.EnableEvents = False
Workbooks("MasterWorkbook.xlsm").Worksheets.Copy After:=ToWorkbook.Sheets(ToWorkbook.Sheets.Count)
Application.EnableEvents = True
End Sub
代码在第5行“ Workbooks(“ MasterWorkbook.xlsm”)。Worksheets.Copy ...”处停止运行。我收到以下错误消息“运行时错误'9':下标超出范围”。
答案 0 :(得分:1)
似乎您需要先打开工作簿。使用Workbooks.Open方法打开工作簿。
Sub CopySheetsFromMaster()
Dim ToWorkbook As Workbook
Set ToWorkbook = ActiveWorkbook
Application.EnableEvents = False
Application.Workbooks.Open("path_to_your_workbook").Worksheets.Copy After:=ToWorkbook.Sheets(ToWorkbook.Sheets.Count)
Application.EnableEvents = True
End Sub
此外,检查传递给Worksheet.Copy方法的参数也很有意义。尝试删除After
参数。如果可以正常使用,则需要特别注意该参数。