从Sheet1复制内容到Sheet9时出现Subscript out of range错误求助
解决VBA复制工作表时的"Subscript out of range"错误
排查方向及解决办法
工作表名称不符
VBA中Sheets("XXX")引用的是工作表标签显示的名称,不是VBA编辑器里的代码名称。主文件里的Sheet1或Sheet9可能被重命名了(比如标签改成了"原始数据""结果表"),导致代码找不到对应工作表。
两种修正方式:- 用代码名称引用:右键工作表标签→查看代码,确认
(Name)属性,直接用该名称编写代码:Sub Copy() Sheet1.Range("B5").Copy Destination:=Sheet9.Range("K1") End Sub - 修改代码中的名称为实际标签名:
Sub Copy() Sheets("实际标签名1").Range("B5").Copy Destination:=Sheets("实际标签名9").Range("K1") End Sub
- 用代码名称引用:右键工作表标签→查看代码,确认
目标/源工作表不存在
检查主文件的工作表标签,确认Sheet1和Sheet9都存在,没有被删除。未指定工作簿导致引用错误
如果同时打开了多个工作簿,代码可能误引用到其他工作簿的工作表。明确指定当前工作簿:Sub Copy() ThisWorkbook.Sheets("Sheet1").Range("B5").Copy Destination:=ThisWorkbook.Sheets("Sheet9").Range("K1") End Sub工作表状态异常
检查Sheet1和Sheet9是否被隐藏、保护,这类状态可能导致代码无法正常访问工作表。
内容的提问来源于stack exchange,提问作者DM24
相关产品推荐
相关产品推荐

