2013-03-19 70 views
4

我正在寫一個將包含希伯來語和英語語言的宏,但如果系統語言環境設置爲希伯來語,我只想顯示希伯來字符,否則我想用英文音譯。VBA for Excel 2010/2013 - 如何識別系統區域設置

這是由於Excel宏處理語言或至少希伯來語的方式上的一個怪癖(因爲某些原因,即使您將鍵盤設置爲希伯來語並且幾乎在每個應用程序中都將輸出希伯來語,但它不會Excel宏編輯器,直到您將系統本地設置爲希伯來語,並且電子表格也不會顯示希伯來語,即使您直接在單元格中鍵入它也會顯示正常 - 至少在Excel 2010和2013中是這樣) 。

在任何情況下,我嘗試了好幾種線,沒有工作,他們是:

Application.LanguageSettings.LanguageID(msoLanguageIDUI) 
Application.LanguageSettings.LanguageID(msoLanguageIDInstall) 
Application.LanguageSettings.LanguagePreferredForEditing(msoLanguageIDHebrew) 

這些都沒有識別系統區域設置和輸出值相同的工作是否對英語(美國)語言環境或希伯來(以色列)之一。

任何人都可以告訴我我需要做什麼來表明由數字或文本系統區域設置是什麼?

回答

1

我發現的代碼Application.LanguageSettings.LanguageID(msoLanguageIDUI)這個here:

你的第一行給出這將是希伯來語1033英語(美國)或1037的LCID。

你可以使用Application.LanguageSettings.LanguageID(msoLanguageIDUI) 來做一個簡單的IF語句來改變使用這些數字的語言環境。

0
Sub LangCheck() 

    Dim lang_code As Long 
     lang_code = Application.LanguageSettings.LanguageID(msoLanguageIDUI) 

     MsgBox lang_code 

End Sub 

美國是1033,希伯來文是1037,按照此鏈接:

MSDN

+0

謝謝(@evoandy還),但我已經嘗試這樣做,這兩個英語(美國)返回1033和希伯來語(以色列)。我所在的個人電腦的語言環境設置爲英語(美國),我可遠程連接到設置爲希伯來語(以色列)的家用PC,因此我可以在兩者上進行測試。我通過管理選項卡下的控制面板「區域和語言」部分檢查區域設置。 – 2013-03-19 13:55:00

+0

如果您轉至Excel選項>語言,則可以添加其他語言。如果您將默認的辦公語言更改爲希伯來語,它會返回「1037」嗎? – evoandy 2013-03-19 14:20:14

+0

我試過了(需要重新加載Excel),它沒有改變任何東西。我注意到在選項>語言下有一個「爲每個Microsoft程序安裝了查看顯示語言」,並且在那裏只有英文,這可能解釋了宏編輯問題 - MS不僅希望在Windows中更改鍵盤和區域設置。他們希望你爲Office購買他們的語言包,儘管這對我來說會是一種矯枉過正,因爲我不需要字典等,只要知道區域設置就可以工作。 – 2013-03-19 15:07:46