In meinem Excel-2013 VBA-Projekt habe ich ein UserForm mit einer Textbox. Ich brauche dieses Textfeld, um nur die Ziffern A-Z, a-z und die 27 hebräischen Buchstaben zu akzeptieren.
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
Funktioniert gut außer dem Hebräischen.
Es erkennt ASCII 128 bis 154 nicht als Hebräisch (diese Werte finden sich in ASCII-Codepage 862).
Das heißt, wenn Sie versuchen, hebräische Buchstaben in das Textfeld einzugeben, wird ein Signalton ausgegeben.
Wie erkläre ich Excel, die ASCII-Codepage 862 zu verwenden?
Antworten:
0 für die Antwort № 1Dirk Reichel gab mir die einfache Idee, zu debuggen und zu prüfen, was in my_TextBox hineingeht, wenn man ein hebräisches Zeichen darin eingibt.
So habe ich das gefunden das hebräische Alphabet in ASCII ist zwischen 1488 und 1514.
Mein Code ist jetzt:
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
Jetzt erlaubt es auch Hebräisch.
Danke Dirk.