VBA在指定范围内查找指定的单元格值并选择它

时间:2016-10-13 21:04:35

标签: excel vba excel-vba macros

我在创建一个宏时遇到问题,该宏会在我的“信息”表单中的某个范围内的活动工作表中找到指定的值。如果在范围内找不到单元格值,那么它会给我一个消息框,说明“找不到值”我有以下内容但它不起作用:

Sub testrot()
    Dim i As String
    Dim srchrng As Range

    Sheets(ActiveSheet.Name).Select
    i = Cells(2, 5)
    Sheets("Information").Select
    Set srchrng = Range("j8:j17").Find(what = i)
    If Not srchrng Is Nothing Then
        MsgBox "Not Found"
    End If
End Sub

我的活动表格中的单元格(2,5)例如是#16,在范围(j8:j17)中,它是不同字符串#16,#17等的列表。

我感谢任何建议。

感谢。

1 个答案:

答案 0 :(得分:0)

您要避免.Select / .Activate

Sub testRot2()
Dim str As String
Dim srchRng As Range
With Worksheets(ActiveSheet.Name)
    str = .Cells(2, 5).Value
    Set srchRng = .Range("J8:J17").Find(what:=str)
    If srchRng Is Nothing Then
        MsgBox "Not found"
    End If
End With
End Sub

另请注意,我已将i更改为str。这是个人选择,因为我通常会将i视为Long / Integer进行循环。你可以保留它i,只是想提一下。另请注意Find(what:=str)中所需的冒号。