2013-10-31 163 views
0

我查找过如何查找范围中的最后一行,但我发现的答案可能 - 最好 - 只给出我是整个工作表的最后一行。范围内的最后一行 - 最后一行不是整个表格中的最后一行[解决]

例如,假设我有A1:A10,B6:B9C1:C4中的元素。我想找到列B:C的最后一行。在这种情况下,答案应该是第9行。我试过使用SpecialCells(xlLastCell),但只得到第10行的答案。

我确定有一个非常简单的答案,但我找不到它!谁能帮忙?

回答

1

下面是如何在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 
+0

呵呵,爽!我很确定这正是我要找的。我很高兴明天测试它! – user2815713

+0

@SørenHoltenHansen+1好答案 – Santosh

+0

@SørenHoltenHansen,谢谢!只需要尝试一下。奇迹般有效。 – user2815713

0

为了让最后一排的一个特定的范围,不一定是特定行,你可以只需简单地引用非常最后一个单元类似,你将如何使用数组做这种范围:

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作为上例中的最后一行。

1

对于任何范围[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)