Клавиша о запрете тестировщикам вводить 2 цифры в текстовое поле в VBA - PullRequest
0 голосов
/ 13 декабря 2018

У меня есть код, который не позволяет нажимать 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 голосов
/ 13 декабря 2018

Вот один из способов добиться того, что вам нужно:

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

Основная идея - оценить значение текстового поля и ответить соответствующим образом.

...