Get last row of specified range in Excel
如何获得已经指定和定义的范围的最后一行,并且已知包含所需的数据?在我看来,这应该是
现在的问题是我的范围不在源工作表的第1行中开始-实际上是从第3行开始并经过了756行。下面是调试器查看的我的范围地址,并且它的定义正确。但是由于它从第3行开始使用
1 2 3 | transData = transactionsDataRange.Address : transData :"$A$3:$AP$756" : Variant/String |
调试器中显示的地址正确。我想要的只是在指定范围内提取右下单元格的行值,即756。我可以解析地址值,并在必要时执行该操作,但是我想知道Excel VBA是否具有更简单的方法实现这一目标?
另一种方法
1 2 3 4 5 6 7 8 9 | Sub x() Dim transactionsDataRange As Range Set transactionsDataRange = Range("$A$3:$AP$756") MsgBox transactionsDataRange.Rows(transactionsDataRange.Rows.Count).Row End Sub |
用
1 2 | Dim LstRow as Long LstRow = transactionsDataRange.Row + transactionsDataRange.Rows.Count - 1 |
指定范围中的最后一个单元格。
1 2 3 4 5 6 7 8 9 10 | Sub test() Dim transactionsDataRange As Range Dim rngT As Range Set transactionsDataRange = Range("$A$3:$AP$756") With transactionsDataRange Set rngT = .Cells(.Rows.Count, .Columns.Count) End With MsgBox rngT.Row End Sub |
1 2 3 4 5 | Sub TestMe() Dim myRange As Range Set myRange = Worksheets(1).Range("D10:D15") Debug.Print myRange.Rows.Count + myRange.Row - 1 End Sub |
它输出15。
1 2 3 4 5 6 7 | Sub TestMe() Debug.Print LastRowOfRange(Range("D15:E199")) End Sub Function LastRowOfRange(myRange) As Long LastRowOfRange = myRange.Rows.Count + myRange.Row - 1 End Function |