计算不同Excel工作表中的行数

时间:2014-05-07 16:48:29

标签: excel vba excel-vba

它在同一个工作簿中。我在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

这是什么搞砸了?

1 个答案:

答案 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