2016-08-20 15 views
2

내 Excel 2013 VBA 프로젝트에서 텍스트 상자가있는 사용자 정의 폼이 있습니다. 이 텍스트 상자에는 숫자, A-Z, a-z 및 27 개의 히브리어 글자 만 입력 할 수 있어야합니다.키 입력을 사용하여 입력 한 텍스트의 히브리어에 대한 VBA 확인을

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를 사용하도록 Excel에 지시하는 방법은 무엇입니까?

+0

글꼴을 변경하거나 KeyAscii 숫자가 – Slai

+2

인지 확인해보십시오.'Debug.Print KeyAscii'를 사용해 보셨습니까? 그것은 무엇이 사용되었는지 알려 주어야합니다 ... –

+0

@ Dirk Reichel - 고맙습니다, 더크. (나 자신을 생각해야한다 ...). ** ASCII의 히브리어 알파벳은 1488 ~ 1514 **와 같습니다. 이제 잘 작동합니다. 다시 한 번 감사드립니다! – gadi

답변

0

Dirk 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 

지금 너무 히브리어 수 있습니다.
감사합니다. Dirk.