【发布时间】:2017-11-23 15:51:23
【问题描述】:
为了让来自不同国家的用户使用我的应用程序,我想在每个现有用户表单(标签、命令按钮、消息框、框架等)的开头初始化每个对象的翻译应用。
我会把所有的翻译都写在我的Languages表中:
我已经制作了第一个用户表单,用户可以在其中输入登录名、密码并选择语言。
在这一步之后,名为“菜单”的主用户窗体将被启动。
我已经尝试在我想要运行的 msgbox 中键入一段代码(如下)来查找代码行(例如:menu.commandbutton1.caption="Envoyer email")
Private Sub UserForm_Initialize()
' Definition of language selected during login
Set langue = Sheets("Languages").Cells.Find("chosen",
lookat:=xlWhole).Offset(-1, 0)
' Initialisation of the texts in the selected language
Dim cel As Range
Dim action As String
For Each cel In Sheets("Languages").Range("d3:d999")
If cel <> "" Then
action = cel & "=" & """" & cel.Offset(0, -2) & """"
MsgBox (action)
End If
Next cel
End Sub
我已经阅读了一些关于这个主题的主题,但这些主题并不完全符合我想要做的。
如果您有解决方案或变通方法,那将非常有帮助。
【问题讨论】:
-
你为什么要尝试将命令变量作为字符串传递..?即使语言更改,这些控件参数(如 menu.commandbutton1.caption)也是固定的??
-
您计划支持多少种语言?您是否真的在问如何更改表单上的标签,如何以所选语言显示消息等?如果您尝试“将字符串变量作为一行代码运行”,那么您想要执行的代码示例在哪里?实现多语言标签等有多种方式
-
不是我写过的最好的代码,但也许这会让你继续前进:jkp-ads.com/Articles/DistributeMacro09.asp
标签: vba excel language-translation