在查找工作表范围的最后一行时,我需要帮助。
例如:
工作表名称为MyWorksheet
范围是A1:A200
我试图找出的是最后一个单元格的行号,该单元格的数据在MyWorksheet范围A1:A200中。
答案 0 :(得分:0)
答案 1 :(得分:0)
要考虑感兴趣范围之内和之外的所有可能的数据布局,需要考虑许多因素
Function RangeLastRow(r As Range, _
Optional Col = 1, _
Optional RelativeToSheet As Boolean = False) As Long
Dim rw As Long
With r.Cells(r.Rows.Count, Col)
If IsEmpty(.Value2) Then
rw = .End(xlUp).Row
If rw < r.Row Then
rw = r.Row
End If
Else
rw = r.Row + r.Rows.Count - 1
End If
End With
If IsEmpty(r.Cells(rw - r.Row + 1, Col)) Then
' range is empty
rw = 0
Else
If Not RelativeToSheet Then
rw = rw - r.Row + 1
End If
End If
RangeLastRow = rw
End Function
将其用作工作表上的UDF,或像这样在VBA中使用
Sub Demo()
Using default Column 1 and Relative to Sheet
MsgBox RangeLastRow(Worksheets("MyWorksheet").Range("A1:A200"))
End Sub