2013-06-24 40 views
2

我對VBA和編程非常陌生。我試圖如下:在特定行中查找inputbox的值,工作表

  • 單擊命令按鈕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 
    

回答

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

如果唯一的目標就是激活細胞,並查看它,你所要做的是:

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

所以,而不是設置小區=選擇的值,使用與上述線

相關問題