在特定行,工作表中查找输入框的值

时间:2013-06-24 16:30:02

标签: vba

我对VBA和编程很新。我正在尝试以下方法:

  • 单击命令按钮btnUpdateEntry以启动输入框
  • 在A列的“输出”表格中搜索输入框的值
  • 转到找到值的第一个位置
  • 如果找不到值,则显示消息

    Private Sub btnUpdateEntry_Click()
    
        Dim StringToFind As String
    
        StringToFind = Application.InputBox("Enter string to find", "Find string")
    
        Worksheets("output").Activate
        ActiveSheet.Range("A:A").Select
    
            Set cell = Selection.Find(What:="StringToFind", After:=ActiveCell, _
                LookIn:=xlFormulas, LookAt:=xlWhole, SearchOrder:=xlByRows, _
                SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False)
    
        If cell Is Nothing Then
            Worksheets("input").Activate
            MsgBox "String not found"
        End If
    
    End Sub
    

2 个答案:

答案 0 :(得分:1)

删除Find声明中的双引号:

    Set cell = Selection.Find(What:=StringToFind, After:=ActiveCell, _
        LookIn:=xlFormulas, LookAt:=xlWhole, SearchOrder:=xlByRows, _
        SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False)

将其括在引号中意味着将其解释为文字字符串,而不是变量StringToFind中保存的变量值。

可能还有其他错误。我没有进一步测试你的代码。如果您需要亲自去单元格,可以使用

Application.GoTo cell

或者你可以使用

cell.Activate

答案 1 :(得分:1)

如果唯一的目标是激活该单元格并查看它,您所要做的就是:

    Selection.Find(what:="yourvalue").Activate

因此,不要设置cell =选择的值,而是使用上面的行