关于不允许测试人员在vba的文本框中输入2位数字的按键操作

时间:2018-12-13 17:15:35

标签: excel vba textbox keypress

我有一个密码,不允许向上按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。

1 个答案:

答案 0 :(得分:1)

这是完成您所需要的一种方法:

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

基本思想是评估文本框的值并将其正确响应。