我正在开发一个Excel仪表板,需要计算行数(即有多少记录)。由于存在一些空单元格,我考虑从底部向上进行计算。我使用以下公式:
Range("A1048576").Select
Selection.End(xlUp).Select
执行后,活动单元格位于A113,这意味着行数为113。
我的问题是如何从活动单元格获取这个数字113?
Dim lastrow as Long
lastrow = Cells(Rows.Count,"A").End(xlUp).Row
lastrow
将包含列 A
中最后一个空行的行数,对于您的情况为 113。
在大多数情况下,获取行/记录数的最佳方法是使用.UsedRange.Rows.Count
。您可以像这样将返回值分配给变量:
lastRow = Sheets(1).UsedRange.Rows.Count
lastrow = WorksheetFunction.CountA(Columns("A:A"))
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