excel - 运行时错误 1004 对象“工作表”的方法“添加”失败 - 添加工作表
问题描述
我已经搜索了这个问题,并且从其他线程中它似乎与受保护的工作表、隐藏的工作表或不正确的文件名有关,但对我来说似乎都不是问题。
我只有一个电子表格文件有这个问题。此工作簿只有一张,我正在尝试添加一张名为“Sheet4”的工作表。
我已经使用多个其他电子表格进行了测试,并且效果很好。
这是代码:
Sub TestAddingSheet()
Dim wb1 As Workbook, wb2 As Workbook
Dim sh1 As Worksheet, sh2 As Worksheet
Dim WbName As String
WbName = ActiveWorkbook.Name
Set wb1 = Workbooks(WbName)
Set wb2 = Workbooks.Open("C:\test\test.xlsx")
Set sh1 = wb1.Sheets.Add(After:=Sheets(Sheets.Count))
sh1.Name = "Sheet4"
Set sh2 = wb1.Worksheets(1)
End Sub
我可以让它工作的方法是在添加新工作表之前激活 wb1,如下所示:
Sub TestAddingSheet()
Dim wb1 As Workbook, wb2 As Workbook
Dim sh1 As Worksheet, sh2 As Worksheet
Dim WbName As String
WbName = ActiveWorkbook.Name
Set wb1 = Workbooks(WbName)
Set wb2 = Workbooks.Open("C:\test\test.xlsx")
wb1.Activate
Set sh1 = wb1.Sheets.Add(After:=Sheets(Sheets.Count))
sh1.Name = "Sheet4"
Set sh2 = wb1.Worksheets(1)
End Sub
为什么原始代码不适用于所有电子表格?
解决方案
推荐阅读
- javascript - 有没有办法在不破坏网格对象的情况下交换与 ThreeJS 网格关联的图像?
- hashicorp-vault - Spring Cloud 配置服务器 - Vault(AWS_IAM 身份验证)
- recursion - OCAML:函数形式不正确
- android - 在 Android 中,如何检测正在运行的应用程序是否是沙盒
- python - 如何多次打印一行并始终使用新行缩进?
- reporting-services - 当其中一个在SSRS中有条件地不可见时如何隐藏文本框之间的空白
- java - 将 FrameLayout 转换为 Fragment
- javascript - 为 reducer 编写单元测试,但是 - TypeError: state.commentList is not iterable
- java - 从 PDImageXObject 将图像提取到文件中而不将其加载到内存中
- c - 基数排序中的位函数