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

时间:2013-03-19 13:14:47

标签: excel vba excel-vba

我正在编写一个将包含希伯来语和英语的宏,但如果系统语言环境设置为希伯来语,我只想显示希伯来语字符,否则我想用英语音译。

这是由于Excel宏似乎处理语言或至少希伯来语的方式的怪癖(出于某种原因,即使您将键盘设置为希伯来语并且几乎在每个应用程序中都会输出希伯来语,它也不会用于Excel宏编辑器,直到您将系统本地设置为希伯来语,因此电子表格也不会显示希伯来语,即使您直接在单元格中输入它也会显示 - 这至少对于Excel 2010和2013都是如此)。

无论如何,我已经尝试了几行没有用过的行,它们是:

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

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

有人能告诉我我需要做什么来用数字或文字表示系统区域设置是什么?

2 个答案:

答案 0 :(得分:1)

我发现了here:

您的第一行代码Application.LanguageSettings.LanguageID(msoLanguageIDUI)为LCID提供英语(美国)1033或希伯来语1037

您可以使用IF执行简单的Application.LanguageSettings.LanguageID(msoLanguageIDUI)语句 使用这些数字更改语言环境。

答案 1 :(得分:0)

Sub LangCheck()

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

        MsgBox lang_code

End Sub
根据这个链接,美国是1033,希伯来语是1037,

MSDN