我查找过如何查找范围中的最后一行,但我发现的答案可能 - 最好 - 只给出我是整个工作表的最后一行。范围内的最后一行 - 最后一行不是整个表格中的最后一行[解决]
例如,假设我有A1:A10
,B6:B9
和C1:C4
中的元素。我想找到列B:C
的最后一行。在这种情况下,答案应该是第9行。我试过使用SpecialCells(xlLastCell)
,但只得到第10行的答案。
我确定有一个非常简单的答案,但我找不到它!谁能帮忙?
我查找过如何查找范围中的最后一行,但我发现的答案可能 - 最好 - 只给出我是整个工作表的最后一行。范围内的最后一行 - 最后一行不是整个表格中的最后一行[解决]
例如,假设我有A1:A10
,B6:B9
和C1:C4
中的元素。我想找到列B:C
的最后一行。在这种情况下,答案应该是第9行。我试过使用SpecialCells(xlLastCell)
,但只得到第10行的答案。
我确定有一个非常简单的答案,但我找不到它!谁能帮忙?
下面是如何在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
OR
Set RR = Range("B6:B11", "C4:C8")
MsgBox "The Last Row is " & RR(RR.Count).Row
两者都将返回11作为上例中的最后一行。
对于任何范围[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)
呵呵,爽!我很确定这正是我要找的。我很高兴明天测试它! – user2815713
@SørenHoltenHansen+1好答案 – Santosh
@SørenHoltenHansen,谢谢!只需要尝试一下。奇迹般有效。 – user2815713