Excel VBA:使用FIND:如何选择找到项目的单元格?

时间:2017-04-19 08:24:12

标签: excel-vba vba excel

我正在使用Excel VBA搜索字符串,例如" CCC"在Excel工作表中。 我使用了显示的简单代码。

但是,我希望VBA选择第一次出现" CCC"找到了。 (就像你手动查找一样)。

如何修改我的代码才能实现这一目标?“

Private Sub CommandButton1_Click()

Dim rng As Range
Set rng = Cells.Find(What:="CCC", After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
        xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
        , SearchFormat:=False)

If Not rng Is Nothing Then
    MsgBox ("found")
Else
    MsgBox ("not found")
End If

End Sub       

3 个答案:

答案 0 :(得分:3)

要选择单元格,您可以使用Select方法。因此,如果您有一个Range对象已设置为您想要的单元格,则可以将Select方法应用于该对象,即

rng.Select

合并到现有代码中,它可能类似于:

Private Sub CommandButton1_Click()

    Dim rng As Range
    Set rng = Cells.Find(What:="CCC", After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
        xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
        , SearchFormat:=False)

    If Not rng Is Nothing Then
        MsgBox "found"
        rng.Select
    Else
        MsgBox "not found"
    End If

End Sub

答案 1 :(得分:3)

您可以使用rng.Select,但它需要工作表在顶部活动(或者您首先要激活它,即rng.Parent.Activate)。最简单的方法是使用Application.Goto rng

If Not rng Is Nothing Then
    Application.Goto rng
    MsgBox ("found")
Else
    MsgBox ("Not found")
End If

答案 2 :(得分:2)

 Private Sub CommandButton1_Click()
Range("A1").select
Cells.Find(What:="CCC", After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
        xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
        , SearchFormat:=False).activate

activcecell.select
If Not rng Is Nothing Then
    MsgBox ("found")
Else
    MsgBox ("not found")
End If

End Sub       

使用activecell.select将选择您的第一个查找单元格。