Excel 2010/2013的VBA - 如何确定系统区域设置

4
我正在编写一个宏,其中包含希伯来语和英语,但如果系统区域设置为希伯来语,我只想显示希伯来字符,否则我想用英语转译。这是因为 Excel 宏似乎处理语言的方式有些奇怪,至少对于希伯来语来说是这样(由于某种原因,即使您将键盘设置为希伯来语并在几乎所有应用程序中输出希伯来语,直到您将系统区域设置为希伯来语,Excel 宏编辑器也不会输出希伯来语,因此电子表格也不会显示希伯来语,即使您直接在单元格中输入它,也会正常显示 - 至少对于 Excel 2010 和 2013 是这样)。无论如何,我尝试了几行代码都没有起作用,它们是:
Application.LanguageSettings.LanguageID(msoLanguageIDUI)
Application.LanguageSettings.LanguageID(msoLanguageIDInstall)
Application.LanguageSettings.LanguagePreferredForEditing(msoLanguageIDHebrew)

这些方法无法区分操作系统的本地化设置,无论是英语(美国)本地化还是希伯来语(以色列)本地化都返回相同的值。

有没有人能告诉我应该如何用数字或文本表示操作系统的本地化设置?

2个回答

2

0
Sub LangCheck()

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

        MsgBox lang_code

End Sub

根据此链接,美国为1033,希伯来语为1037:

MSDN


谢谢(也感谢@evoandy),但我已经尝试过这个方法,它返回1033,无论是英语(美国)还是希伯来语(以色列)。我所在的电脑区域设置为英语(美国),我通过远程连接到我的家用电脑上进行测试,该电脑区域设置为希伯来语(以色列)。我通过控制面板中的“区域和语言”部分下的管理选项卡检查了区域设置。 - Ban Atman
如果您前往Excel选项>语言,就可以添加其他语言。如果将默认的Office语言更改为希伯来语,它会返回“1037”吗? - evoandy
我尝试了一下(需要重新加载Excel),但没有改变什么。我注意到在"选项>语言"下有一个"查看每个Microsoft程序安装的显示语言",那里只有英语,这可能解释了宏编辑问题。微软希望在Windows中更改的不仅仅是键盘和区域设置,还希望你购买Office的语言包。虽然对我来说这太过了,因为我不需要词典等,只需要知道地区设置即可。 - Ban Atman

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接