Excel VBA:查找完整重复列的最后一行,但不是整列的结尾

时间:2014-08-11 22:34:55

标签: vba

我有一个大型数据表,其中每一行都有一个列,为其提供唯一标识符,如下所示:

      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标识符的行号。有什么想法吗?

1 个答案:

答案 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 参数。