У моєму проекті Excel-2013 VBA у мене є UserForm з текстовим полем. Мені потрібен цей текст, щоб приймати лише цифри, A-Z, a-z і 27 івритських літер.
Private Sub my_TextBox_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If (Not (KeyAscii > 47 And KeyAscii < 58)) And _ <= 0-9
(Not (KeyAscii > 64 And KeyAscii < 91)) And _ <= A-Z
(Not (KeyAscii > 96 And KeyAscii < 123)) And _ <= a-z
(Not (KeyAscii > 127 And KeyAscii < 155)) Then <= Hebrew
KeyAscii = 8
Beep
End If
End Sub
Працює відмінно, крім івриту.
Він не розпізнає ASCII 128 через 154 як іврит (ці значення знаходяться на сторінці коду ASCII 862).
Тобто, намагаючись набрати івритські літери в текстовому полі, з'являється звуковий сигнал.
Як я можу сказати Excel, щоб він використовував сторінку коду ASCII 862?
Відповіді:
0 для відповіді № 1Dirk Reichel дав мені просту ідею налагодження і перевірки того, що входить до my_TextBox при введенні в нього івритського символу.
Ось як я це знайшов єврейський алфавіт в ASCII знаходиться між 1488 і 1514 роками.
Тепер мій код:
Private Sub my_TextBox_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If (Not (KeyAscii > 47 And KeyAscii < 58)) And _ <= 0-9
(Not (KeyAscii > 64 And KeyAscii < 91)) And _ <= A-Z
(Not (KeyAscii > 96 And KeyAscii < 123)) And _ <= a-z
(Not (KeyAscii > 1487 And KeyAscii < 1515)) Then <= Hebrew
KeyAscii = 8
Beep
End If
End Sub
Тепер він також дозволяє івриті.
Спасибі, Дірк.