【问题标题】:VBA for Excel 2010/2013 - How to identify the system localeVBA for Excel 2010/2013 - 如何识别系统区域设置
【发布时间】:2013-03-19 13:14:46
【问题描述】:

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

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

无论如何,我尝试了几行都没有成功,它们是:

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

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

谁能告诉我我需要做什么才能通过数字或文本指示系统区域设置是什么?

【问题讨论】:

    标签: vba excel


    【解决方案1】:

    我找到了这个here:

    您的第一行代码 Application.LanguageSettings.LanguageID(msoLanguageIDUI) 给出了 LCID,对于英语(美国)是 1033,对于希伯来语是 1037

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

    【讨论】:

      【解决方案2】:
      Sub LangCheck()
      
         Dim lang_code As Long
              lang_code = Application.LanguageSettings.LanguageID(msoLanguageIDUI)
      
              MsgBox lang_code
      
      End Sub
      

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

      MSDN

      【讨论】:

      • 谢谢(@evoandy 也),但我已经尝试过了,它为英语(美国)和希伯来语(以色列)返回 1033。我使用的 PC 将语言环境设置为英语(美国),并且我远程连接到设置为希伯来语(以色列)的家用 PC,因此我可以在两者上进行测试。我通过管理选项卡下的控制面板“区域和语言”部分检查语言环境。
      • 如果您转到 Excel 选项>语言,则可以添加其他语言。如果您将默认办公语言更改为希伯来语,是否返回 1037
      • 我试过了(需要重新加载 Excel),但并没有改变。我确实注意到选项>语言下有一个“查看为每个 Microsoft 程序安装的显示语言”,并且那里只有英语可以解释宏编辑问题 - MS 想要的不仅仅是在 Windows 中更改键盘和区域设置。他们希望您为 Office 购买他们的语言包,尽管这对我来说有点过头了,因为我不需要字典等,并且只知道语言环境设置就可以了。
      猜你喜欢
      • 1970-01-01
      • 2017-05-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-23
      • 1970-01-01
      相关资源
      最近更新 更多