2017-09-29 40 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