将工作表复制到ActiveWorkbook



我正试图将两个工作簿中的两个工作表(均命名为"可交付成果"(整理到第三个工作簿中。

文件名不断变化,因为所有三个工作簿都是根据季度命名的(Q1/2/3/4(
我试着引用";源";工作簿的索引号(分别为2和3,因为"目标"工作簿将首先打开,它是运行宏的位置(,以及在我使用ActiveWorkbook.Sheets后的.copy(分别为1和2(。

接收

运行时错误"9">

错误似乎与第一行代码隔离。当我移除它时,第三行会按它应该的方式运行。

我试图通过按名称而不是索引引用工作簿,并按索引而不是"引用工作表来隔离问题;可交付";。

Workbooks(2).Sheets("Deliverable").Copy After:=Application.ActiveWorkbook.Sheets(1)
ActiveSheet.Name = "Q3 2020"
'
Workbooks(3).Sheets("Deliverable").Copy After:=Application.ActiveWorkbook.Sheets(2)
ActiveSheet.Name = "Q2 2020"

如果代码正在运行,则可以使用ThisWorkbook,如果可以,则最好避免使用ActiveWorkbook/ActiveSheet

With ThisWorkbook
Workbooks(2).Sheets("Deliverable").Copy After:=.WorkSheets(1)
.WorkSheets(2).Name = "Q3 2020"
Workbooks(3).Sheets("Deliverable").Copy After:=.WorkSheets(2)
.WorkSheets(3).Name = "Q2 2020"
End With

最新更新