如何获取已指定和定义的范围的最后一行,并且已知包含所需的数据?在我看来,这应该是Range.Row
之类的属性,但是Range.Row给出范围内的第一行号,而我希望 最后 行号。
现在的问题是我的范围不在源工作表的第1行开始-实际上是从第3行开始并经过756行。下面是调试器查看的我的范围地址,并且定义正确。但是由于它从第3行开始使用Rows.Count
将不起作用,因为它的结果是754,而不是756。
Rows.Count
是对范围的引用,该范围是原始图纸的子集。我想要原始电子表格中最后一行的行号,与下面的地址完全相同。换句话说,“地址”上有一些属性可以给我756吗?
transData = transactionsDataRange.Address
: transData : "$A$3:$AP$756" : Variant/String
调试器中显示的地址正确。我想要做的就是提取指定范围内右下单元格的行值(即756)。我可以解析地址值,并在需要时执行该操作,但是我想知道Excel VBA是否具有更简单的方法实现这一目标?
答案 0 :(得分:4)
一种替代方法
Sub x()
Dim transactionsDataRange As Range
Set transactionsDataRange = Range("$A$3:$AP$756")
MsgBox transactionsDataRange.Rows(transactionsDataRange.Rows.Count).Row
End Sub
答案 1 :(得分:2)
答案 2 :(得分:0)
Sub TestMe()
Dim myRange As Range
Set myRange = Worksheets(1).Range("D10:D15")
Debug.Print myRange.Rows.Count + myRange.Row - 1
End Sub
它显示15。myRange.Rows.Count
是6,myRange.Row
是10。或者,如果您喜欢1行功能,可以这样:
Sub TestMe()
Debug.Print LastRowOfRange(Range("D15:E199"))
End Sub
Function LastRowOfRange(myRange) As Long
LastRowOfRange = myRange.Rows.Count + myRange.Row - 1
End Function
答案 3 :(得分:0)
指定范围中的最后一个单元格。
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