我正在开发excel中的仪表板。我正在寻找计算行数。 (存在多少条记录)..
由于有一些空白单元格,我认为是自下而上。我使用以下
Range("A1048576").Select
Selection.End(xlUp).Select
执行此操作后,活动单元格位于A113,这表示行计数为113.
我的问题是如何从活动单元格中获取此数字113?
答案 0 :(得分:4)
您可以使用:
Dim lastrow as Long
lastrow = Cells(Rows.Count,"A").End(xlUp).Row
lastrow
将包含A
列中的最后一个空行数,在您的情况下为113
答案 1 :(得分:1)
以下是我通常使用的内容:
lastrow = WorksheetFunction.CountA(Columns("A:A"))
这将返回列“A”中非空单元格的数量,这是我认为您所追求的。希望这会有所帮助。
答案 2 :(得分:1)
获取行/记录数(在大多数情况下)的最佳方法是使用 .UsedRange.Rows.Count
。您可以将返回值分配给这样的变量:
lastRow = Sheets(1).UsedRange.Rows.Count
如果您使用包含列(例如 A 列)的函数,如其他示例所示,则只会获得该列中的行数,这可能是您想要的,也可能不是。一个警告:如果您在最后一行下方设置了带有值的行的格式,那么它将返回该行号。
答案 3 :(得分:0)
如果工作表的最后一行不是空的可能性很小,您应该在@simoco的解决方案中添加IsEmpty()
项检查。因此;以下是一个函数,它返回上次使用的行并检查工作表的最后一行是否为空:
Function lastRow(WS As Worksheet, iColumn As String) As Long
If Not IsEmpty(WS.Range(iColumn & WS.Rows.Count)) Then
lastRow = WS.Rows.Count
Else
lastRow = WS.Range(iColumn & WS.Rows.Count).End(xlUp).Row
End If
End Function