VBA 下标越界?

来源:百度知道 编辑:UC知道 时间:2024/06/01 19:39:26
Sub 单击_按钮1()
Dim iEndRow As Integer
iEndRow = ActiveWorkbook.Sheets("sheet2").Range("a6553").End(xlUp).Row
END SUB
Cells(1, 6) = iEndRow

我是才刚学VBA 的菜鸟,老大们帮卡看
这段程序怎么老是提示下标越界?
Sub 按钮1_单击()

Dim iEndRow As Long
iEndRow = Sheets(1).Range("a65536").End(xlUp).Row
Cells(1, 6) = iEndRow
End Sub

上边这样是正常的
但是求sheets(2)时,他出来老是1?

Sub 按钮1_单击()

Dim iEndRow As Long
iEndRow = Sheets("Rv160").Range("a65536").End(xlUp).Row
Cells(1, 6) = iEndRow

End Sub

"RV160"就是sheets(2)
我的sheets(1)也起了名字的叫"TOTAL"
为什么第一个表可以,而第二个表不行呢?

你那个 END SUB 出现的不是地方啊兄弟。以下这样似乎像样些。

Sub 单击_按钮1()

Dim iEndRow As Integer
iEndRow = ActiveWorkbook.Sheets("sheet2").Range("a6553").End(xlUp).Row
Cells(1, 6) = iEndRow

End Sub

sheet2
有这个表吗?
Range("a6553")-->Range("a65536")
Sub 单击_按钮1()

Dim iEndRow As Integer
iEndRow = ActiveWorkbook.Sheets("sheet2").Range("a65536").End(xlUp).Row
Cells(1, 6) = iEndRow

End Sub

我试了一下,是可以运行的。无论代码放在Sheet1中、Sheet2中还是模块中,都可以。
那楼主把Sheets("Rv160")改为Sheets(2)试一下呢,是否可以?如果可以那就是Sheet名称问题了。

iEndRow 定义在SUB 内,作用域也仅限于SUB作用域内,在SUB 之外调用 就会出错。