我已经四处寻找如何找到范围内的最后一行,但我找到的答案最多只能给我整个工作表中最后使用的行。
例如,假设我在A1:A10
、B6:B9
和中有元素C1:C4
。我想在 columns 中找到最后一行B:C
。在这种情况下,答案应该是第 9 行。我试过使用SpecialCells(xlLastCell)
,但只得到第 10 行的答案。
我敢肯定有一个非常简单的答案,但我找不到它!任何人都可以帮忙吗?
对于任何范围r:
nLastRow = r.Rows.Count + r.Row - 1
MsgBox ("last row " & nLastRow)
nLastColumn = r.Columns.Count + r.Column - 1
MsgBox ("last column " & nLastColumn)
nFirstRow = r.Row
MsgBox ("first row " & nFirstRow)
nFirstColumn = r.Column
MsgBox ("first column " & nFirstColumn)
numrow = r.Rows.Count
MsgBox ("number of rows " & numrow)
numcol = r.Columns.Count
MsgBox ("number of columns " & numcol)
这是一个示例,说明如何B:C
使用 VBA 返回列中最后一行的编号:
Sub ReturnLastRow()
MsgBox "Last row in columns B:C is " & _
WorksheetFunction.Max(ActiveSheet.Cells(Rows.Count, 2).End(xlUp).Row, ActiveSheet.Cells(Rows.Count, 3).End(xlUp).Row)
End Sub
要获取特定范围中的最后一行,不一定是特定行,您可以简单地引用该范围中的最后一个单元格,类似于使用数组的方式:
Set RR = Range("B6:B9", "C4:C11")
MsgBox "The Last Row is " & RR(RR.Count).Row
或者
Set RR = Range("B6:B11", "C4:C8")
MsgBox "The Last Row is " & RR(RR.Count).Row
在上面的示例中,两者都将返回 11 作为最后一行。