2017-09-29 73 views
0

我在Excel工作表中有一個文本框。用戶可以在框中輸入文本,然後單擊文本框旁邊的「搜索」按鈕來查找該文本。 '搜索'按鈕調用一個宏。在VBA文本框中使用Enter鍵調用宏

我的問題是,用戶必須點擊'搜索'按鈕才能運行宏,而我想在輸入文本後按下Enter鍵。是否可以將代碼放入文本框,以便在用戶按下「Enter」鍵時執行Search宏?

我試過使用下面的代碼無濟於事。

Private Sub TextBox1_Change() 

    If KeyCode = vbKeyReturn Then 
     Call search 
    End If 

End Sub 

的搜索宏的代碼(如果它幫助)是這樣的:提前

Sub search() 

On Error GoTo Errmsg 

Columns("A:B").Find(What:=Worksheets("Companies List").TextBox1.Value, _ 
After:=ActiveCell, LookIn:=xlFormulas, LookAt:=xlPart, _ 
SearchOrder:=xlByRows, SearchDirection:= _ 
xlNext, MatchCase:=False, SearchFormat:=False).Activate 

Exit Sub 

Errmsg: 
MsgBox "Text can't be found." 

End Sub 

謝謝!

回答

0

要得到特殊鍵的代碼,使用KeyDownKeyUp事件

Private Sub TextBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) 
    if KeyCode = asc(vbCr) then call search 
End Sub