VBA for Excel 2010/2013 – 如何识别系统区域设置

我正在编写一个macros,希伯来文和英文都将在其中,但如果系统区域设置为希伯来语,我只想显示希伯来字符,否则我想用英文音译。

这是由于Excel的macros似乎处理语言或至less希伯来语(由于某些原因,即使你的键盘设置为希伯来语,几乎在每个应用程序中都将输出希伯来语,它不会用于Excelmacros编辑器直到你把系统本地设置为希伯来语,所以电子表格也不会显示希伯来语,即使你直接在单元格中input,它也会显示正确 – 至less在Excel 2010和2013中是这样的)。

无论如何,我已经尝试了几行没有工作的行,他们是:

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

无论是在英语(美国)语言环境还是希伯来语(以色列)语言环境中,这些都无法识别系统语言环境并输出相同的值。

任何人都可以告诉我,我需要做什么来表明一个数字或文本系统区域设置是什么?

我在这里find了这个:

你的第一行代码Application.LanguageSettings.LanguageID(msoLanguageIDUI)给出了英语(美国) 1033或希伯来语1037的LCID。

你可以使用Application.LanguageSettings.LanguageID(msoLanguageIDUI)做一个简单的IF语句来改变使用这些数字的语言环境。

 Sub LangCheck() Dim lang_code As Long lang_code = Application.LanguageSettings.LanguageID(msoLanguageIDUI) MsgBox lang_code End Sub 

美国是1033,希伯来文是1037,根据这个环节:

MSDN