我有一个大型数据表,其中每一行都有一个列,为其提供唯一标识符,如下所示:
Row Identifier Value 1 A 3 2 A 4 3 A 7 4 B 1 5 B 3 6 B 0 7 C 9
我希望能够找到范围中最后一个重复标识符的行号。因此,例如,如果标识符“B”长度为某个未知行数,并且我想查找具有列标识符“B”的最后一行的编号,我该怎么办?
到目前为止,我已经提出了选择FIRST标识符行的代码:
' Select first row where first instance of <B> exists:
With ActiveWorkbook.ActiveSheet
Set First_B_Row = .Range("A:A").Find(What:="B", LookIn:=xlValues)
End With
Dim First_B_RowNumber As Long
First_B_RowNumber = First_B_Row.Row
ActiveWorkbook.ActiveSheet.Rows(First_B_RowNumber).Select
但是,我希望能够在一个完整的列中找到LAST标识符的行号。有什么想法吗?
答案 0 :(得分:1)
你绝对亲近。而不是从上到下搜索,然后反向搜索:
With ActiveWorkbook.ActiveSheet
Dim Last_B_RowNumber As Long
Last_B_RowNumber = .Range("A:A").Find(What:="B", After:=[A1], _
SearchDirection:=xlPrevious).Row
End With
上面的代码会在A列中找到 B 的最后一次出现,并将其行号分配给变量。
您刚刚错过 SearchDirection 参数。