excel - 将工作表复制到 ActiveWorkbook
问题描述
我正在尝试将两个工作表(均名为“可交付”)从两个工作簿整理到第三个工作簿。
文件名不断变化,因为所有三个工作簿都根据季度 (Q1/2/3/4) 命名。
我尝试通过索引号(分别为 2 和 3,因为“目标”工作簿将首先打开并且它是运行宏的位置)来引用“源”工作簿,并在使用 ActiveWorkbook 后用于 .copy .Sheets(分别为 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
推荐阅读
- docker - 在 docker 容器中成为 root
- python - Python 在工作目录中使用“pip install”ed 站点包而不是默认站点包
- php - 访问 end_lvl 中的子菜单描述(Wordpress Walker_Nav_Menu)
- sql - 统计前几行Call ID的重复次数,按日期排序
- sql - 访问 - 如果列包含来自另一列的值,则获取最新日期
- java - Google Dataflow Beam 作业中的 SSL 握手异常
- python - 在 python 中更改 output.write 上的 VAR 位置
- c++ - UWP 应用程序证书存储在哪里?我在 wincrypt 函数中看不到它们
- html - 如何使用 data-translate-x 效果在 laxx.js 库上设置结束点
- hibernate - 如何通过 Spring Data JPA 了解底层数据库名称