我做了一个小项目,其中包含 5 个 Excel 工作表,代码工作正常,我也得到了准确的结果,但如果我将工作表从sheet1 重命名为其他名称,我会收到下标超出范围错误。
造成这种情况的原因是什么以及需要采取哪些措施来克服这个问题。请帮忙。
下面是代码
Public Sub amount_final()
Dim Row1Crnt As Long
Dim Row2Crnt As Long
With Sheets("sheet4")
Row1Last = .Cells(Rows.Count, "B").End(xlUp).Row
End With
Row1Crnt = 2
With Sheets("sheet3")
Row2Last = .Cells(Rows.Count, "B").End(xlUp).Row
End With
最佳答案
代码本身没有任何问题。如果 Excel 无法找到特定工作表,您将收到 下标超出范围
错误,该错误在您重命名后非常明显。例如,如果您将工作表“Sheet3”重命名为“SheetXYZ”,那么 Excel 将无法找到它。
避免此类错误的唯一方法是使用工作表的 CODENAME。查看快照
这里我们有一张名为“重命名前的示例名称”的工作表
所以考虑这段代码
Sheets("Sample Name before Renaming").Range("A1").Value = "Blah Blah"
相同的代码可以写为
Sheet2.Range("A1").Value = "Blah Blah"
现在,无论您重命名工作表多少次,上面的代码都将始终有效:)
HTH
席德
关于vba - 下标超出范围重命名工作表后出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9923439/