可能是一个罕见的请愿书,但问题是这样的。
我正在将第三方的 Excel 调整到我的组织中。 Excel 是用英语开发的,而我组织的人员只会说西班牙语。我想使用与原始工作表完全相同的代码,我不想碰它(尽管我可以做到),所以我想使用每次出现 msgbox 时的函数(文本为英文) ,我翻译了 msgbox 消息,但没有触及原始脚本。我正在寻找一个可以在每次在原始代码中调用 msgbox 时调用的掩码。
我宁愿不要触及原始代码,因为第三方开发人员可能会频繁更改它,并且每次他们进行任何微小更改时都更改代码可能会非常烦人。
那可能吗?
干得好。
Sub test()
Dim s As String
s = "hello world"
MsgBox translate_using_vba(s)
End Sub
Function translate_using_vba(str) As String
' Tools Refrence Select Microsoft internet Control
Dim IE As Object, i As Long
Dim inputstring As String, outputstring As String, text_to_convert As String, result_data As String, CLEAN_DATA
Set IE = CreateObject("InternetExplorer.application")
' TO CHOOSE INPUT LANGUAGE
inputstring = "auto"
' TO CHOOSE OUTPUT LANGUAGE
outputstring = "es"
text_to_convert = str
'open website
IE.Visible = False
IE.navigate "http://translate.google.com/#" & inputstring & "/" & outputstring & "/" & text_to_convert
Do Until IE.ReadyState = 4
DoEvents
Loop
Application.Wait (Now + TimeValue("0:00:5"))
Do Until IE.ReadyState = 4
DoEvents
Loop
CLEAN_DATA = Split(Application.WorksheetFunction.Substitute(IE.Document.getElementById("result_box").innerHTML, "</SPAN>", ""), "<")
For j = LBound(CLEAN_DATA) To UBound(CLEAN_DATA)
result_data = result_data & Right(CLEAN_DATA(j), Len(CLEAN_DATA(j)) - InStr(CLEAN_DATA(j), ">"))
Next
IE.Quit
transalte_using_vba = result_data
End Function
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)