关于不允许测试人员在 vba 的文本框中输入 2 位数字的按键
Keypress about not allowing testers inputing 2 digits in a textbox in vba
我有一个代码不允许向上按 0,1 和 8
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii
Case Asc("2") To Asc("8")
Case Else
KeyAscii = 0
MsgBox "Input should be 2 to 8 only!"
End Select
End Sub
但我的问题是如果我输入 22、33、44、555,666 和 888,msgbox 不会 运行。
我的目标是将文本框保护到只有 2 到 8 个。
这是完成您需要的一种方法:
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If Val(TextBox1.Text & Chr(KeyAscii)) < 2 Or Val(TextBox1.Text & Chr(KeyAscii)) > 8 Then
KeyAscii = 0
MsgBox "Input should be 2 to 8 only!"
End If
End Sub
基本思路是评估文本框的值并做出适当的响应。
我有一个代码不允许向上按 0,1 和 8
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii
Case Asc("2") To Asc("8")
Case Else
KeyAscii = 0
MsgBox "Input should be 2 to 8 only!"
End Select
End Sub
但我的问题是如果我输入 22、33、44、555,666 和 888,msgbox 不会 运行。
我的目标是将文本框保护到只有 2 到 8 个。
这是完成您需要的一种方法:
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If Val(TextBox1.Text & Chr(KeyAscii)) < 2 Or Val(TextBox1.Text & Chr(KeyAscii)) > 8 Then
KeyAscii = 0
MsgBox "Input should be 2 to 8 only!"
End If
End Sub
基本思路是评估文本框的值并做出适当的响应。