它在同一个工作簿中。我在Sheet3的范围内有一些数字,按钮在Sheet2中。我希望它计算行数,然后在msgbox中将值返回给我。如果我用Sheet3打开它运行它运行正常。如果我使用不同的工作表运行它,我会得到计数部分的对象错误。无论哪个工作表处于活动状态,它都会在单元格A2中插入3。
Sub problem3run()
Dim rngtest As Range
Set rngtest = Sheet3.Range("A2")
rngtest.Value = 3
Dim rngacount As Integer
rngacount = Sheet3.Range(Range("A4"), Range("A4").End(xlDown)).Rows.Count
MsgBox (rngacount)
End Sub
这是什么搞砸了?
答案 0 :(得分:3)
这里有两个问题。首先,数据类型Integer
无法保存某些Excel文件中的所有行,因此您只想使用Long
。第二个是您使用不合格的rngacount
对象定义range
。试试这个:
Sub problem3run()
Dim rngtest As Range
Set rngtest = Sheet3.Range("A2")
rngtest.Value = 3
Dim rngacount As Long '<~ use Long here rather than Integer
With Sheet3 '<~ use a With here to qualify ranges
rngacount = .Range(.Range("A4"), .Range("A4").End(xlDown)).Rows.Count
End With
MsgBox (rngacount)
End Sub