将工作表从主工作簿复制到活动工作簿

时间:2020-06-04 08:43:07

标签: excel vba

以下代码有时(但并非总是)有效。我看过类似的示例,但是我需要以特定的方式工作(将所有工作表从“母版”复制到活动工作簿中。)

我正在尝试将工作表从“主”工作簿(“ 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':下标超出范围”。

1 个答案:

答案 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参数。如果可以正常使用,则需要特别注意该参数。