我在Excel中有一个userform,要求输入用户名和密码。如果按 Enter 输入密码,只需“选择”下一个LogIn
按钮项,但不按下它。你必须再次按 Enter 来实际按下按钮。
当用户按下键盘上的Enter键时,按下LogIn按钮并运行与之关联的代码(Logincode_click
),我该怎么做呢?
答案 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键(你想要的结果)时,它将运行与“登录”按钮链接的代码。