使用输入框和msg框在excel VBA中搜索数据

问题描述

我正在开发一个需要我制作的子程序,以便用户可以使用输入框搜索他们的 ProductID,然后使用 msgBox 让他们知道它是否被找到,但我不能得到正确的代码。我在这里做错了什么?完全丢失(下面的代码):

Sub test()

    Dim Worksheet As Range
    Dim ProductID As Variant

    ProductID = InputBox("Please enter the Product ID")

    With Worksheets(1).Range("A1:Z1000")
        Set ProductID = .Find("ProductID",LookIn:=xlWhole)

        If found Then
            MsgBox ProductID("was Found")
        Else
            MsgBox ProductID & (" was NOT Found")
        End If

    End With
End Sub

解决方法

几个问题,包括以下内容:

  • Find 的结果分配给 Range 变量(与 ProductId 分开),例如变量 found
  • 使用 If Not 表示变量 Is Nothing 来测试查找是否成功。
  • 删除Dim Worksheet As Range
  • 变量不属于引号内。 ProductID(不带引号)是变量。 "ProductID" 是文本“ProductID”。使用变量而不是文本调用 Find
  • 应该是 LookIn:=xlValuesLookIn:=xlFormulas,然后是 LookAt:=xlWhole
Sub test()

    Dim ProductID As Variant
    ProductID = InputBox("Please enter the Product ID")

    Dim found As Range
    Set found = Worksheets(1).Cells.Find(What:=ProductID,LookIn:=xlValues,LookAt:=xlWhole)

    If Not found Is Nothing Then
        MsgBox ProductID & " was Found"
    Else
        MsgBox ProductID & " was NOT Found"
    End If

End Sub