在VBA Userform中输入Key以按下按钮

时间:2013-10-01 20:24:44

标签: excel vba

我在Excel中有一个userform,要求输入用户名和密码。如果按 Enter 输入密码,只需“选择”下一个LogIn按钮项,但不按下它。你必须再次按 Enter 来实际按下按钮。

当用户按下键盘上的Enter键时,按下LogIn按钮并运行与之关联的代码(Logincode_click),我该怎么做呢?

6 个答案:

答案 0 :(得分:15)

您还可以使用TextBox的On Key Press事件处理程序:

'Keycode for "Enter" is 13
Private Sub TextBox1_KeyDown(KeyCode As Integer, Shift As Integer)
    If KeyCode = 13 Then
         Logincode_Click
    End If
End Sub

Textbox1就是一个例子。确保选择要引用的文本框,并且Logincode_Click是您使用此代码调用(运行)的示例子。请务必参考您喜欢的子

答案 1 :(得分:9)

请务必尽可能避免使用“幻数”,方法是定义自己的常量,或者使用内置的 vbXXX 常量。

在这个例子中,我们可以使用 vbKeyReturn 来指示回车键的键码(替换 YourInputControl SubToBeCalled )。

   Private Sub YourInputControl_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
        If KeyCode = vbKeyReturn Then
             SubToBeCalled
        End If
   End Sub

这可以防止整个类别的兼容性问题和简单的拼写错误,特别是因为VBA为我们提供了标识符。

干杯!

答案 2 :(得分:5)

这个对我有用

Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
        If KeyCode = 13 Then
             Button1_Click
        End If
End Sub

答案 3 :(得分:1)

使用TextBox的Exit事件处理程序:

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    Logincode_Click  
End Sub

答案 4 :(得分:0)

继续@ Penn的评论,如果链接中断,您还可以通过将按钮的Default属性设置为True来实现此目的(您可以在属性窗口,通过点击 F4

打开

这样,只要 Return 被击中,VBA就会知道激活按钮的点击事件。类似地,将按钮的Cancel属性设置为True会导致该按钮的单击事件在 ESC 键被命中时运行(对于正常退出Userform非常有用)

来源:Olivier Jacot-Descombes的答案可在此处访问https://stackoverflow.com/a/22793040/6609896

答案 5 :(得分:0)

您可以在这里使用:

链接到用户名字段的代码末尾的

.as-console-wrapper { max-height: 100% !important; top: 0; }

因此您可以跳过按ENTER键一次(一次) 结果,将激活下一个按钮(此处的“登录”按钮)。当你按下一次ENTER键(你想要的结果)时,它将运行与“登录”按钮链接的代码。