下标超出范围重命名工作表后出错

neo*_*bee 6 excel vba excel-vba

我做了一个小项目,其中包含5个Excel工作表,代码工作正常,我也得到了确切的结果,但如果我将工作表从sheet1重命名为其他名称,我将使Subscript超出范围错误.

是什么原因以及需要采取什么措施来克服这个问题.请帮忙.

下面是代码

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
Run Code Online (Sandbox Code Playgroud)

Sid*_*out 12

代码本身没有任何问题.Subscript out of range如果Excel无法找到自重命名后非常明显的特定工作表,则会出现错误.例如,如果将工作表"Sheet3"重命名为"SheetXYZ",则Excel将无法找到它.

避免这些错误的唯一方法是使用工作表的CODENAME.请参见快照

在此输入图像描述

这里有一张名为"重命名前的样品名称"的工作表

所以请考虑这段代码

Sheets("Sample Name before Renaming").Range("A1").Value = "Blah Blah"
Run Code Online (Sandbox Code Playgroud)

相同的代码可以写成

Sheet2.Range("A1").Value = "Blah Blah"
Run Code Online (Sandbox Code Playgroud)

现在无论您重命名工作表多少次,上面的代码将始终有效:)

HTH

希德