2016-08-20 129 views
2

在我的Excel-2013 VBA項目中,我有一個帶有文本框的用戶窗體。我需要這個文本框只接受數字,A-Z,a-z和27個希伯來字母。excel vba在輸入的文本中使用按鍵keyascii檢查希伯來語

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

嘗試更改字體或檢查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 

現在允許希伯來語了。
謝謝德克。

相關問題