Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
excel vba中的表单国际化_Vba_Excel - Fatal编程技术网

excel vba中的表单国际化

excel vba中的表单国际化,vba,excel,Vba,Excel,在我的excel文件中,我有一些使用表单的宏。现在我想根据用户语言翻译标签、按钮等。 我想没有像.net中那样的资源文件 但我不确定做这个翻译的最佳选择是什么。 有什么想法吗?获取当前用户语言: Application.LanguageSettings.LanguageID(msoLanguageIDUI) 这将根据当前用户的语言设置返回区域设置ID。要将此ID与位置和语言匹配,请转到。您需要自己翻译控件 然后如何选择填充控件取决于使用情况,但我会为区域设置ID和您希望遇到的语言创建一个选择

在我的excel文件中,我有一些使用表单的宏。现在我想根据用户语言翻译标签、按钮等。 我想没有像.net中那样的资源文件

但我不确定做这个翻译的最佳选择是什么。
有什么想法吗?

获取当前用户语言:

 Application.LanguageSettings.LanguageID(msoLanguageIDUI)
这将根据当前用户的语言设置返回区域设置ID。要将此ID与位置和语言匹配,请转到。您需要自己翻译控件


然后如何选择填充控件取决于使用情况,但我会为区域设置ID和您希望遇到的语言创建一个选择案例,如果您没有包括用户的语言,则使用默认情况。从“我必须输入所有这些内容”的角度来看,这是一个相当麻烦的解决方案,我相信还有更好的解决方案,但它使工作簿非常可移植,并且独立于任何其他文件。

有一些版本序列化为XML文件,具体取决于用户的语言加载(反序列化)正确的XML并填充控件扫描我是否将这些XML文件包含在excel文件/宏中,或者我是否需要查找与exel文件相同的文件夹并将翻译文件放在那里?如果您希望将所有内容都保存在一个文件中,您可以为用户的语言设置创建一个选择案例,根据语言选择填充控件反恐执行官。翻译所有控件可能需要一点手动输入,但它可以将所有内容保存在一起。它还可以让您将工作簿发送给其他人,而无需发送XML文件。@asp8811这主意不错,但您如何在VBE编辑器中处理例如中文字符而无需手动更改支持这些的ng语言?很好。ASCII代码?编辑:我认为ASCII不能处理中文。也许你需要自己翻译你的控件。从技术上讲,你可以在运行时使用Google API翻译文本,但我认为效率要低得多(而且可能无法正确翻译细微差别)在性能方面,我考虑过这一点,使用某种翻译器,而不是只是自己输入它,但是你的用户也需要一个互联网连接。如果你有代码中的翻译,即使你失去了连接,你也可以运行宏。在这个时代,可能不重要,但要考虑的事情。dea虽然如此。我将使用这个解决方案,自己翻译控件,因为只需要支持很少的语言,并且控件的数量有限。我只是想知道,除了在代码中这样做,是否还有更干净的方法。