如何在VBA中调用Excel 365内置的TRANSLATE()函数?
在VBA中使用Excel 365 TRANSLATE函数的解决方法
问题原因
Excel 365的TRANSLATE()是工作表专属函数,并非VBA内置函数,直接在VBA代码或立即窗口中调用会触发“Sub or function not defined”编译错误。
可行实现方式
方法1:通过Application.WorksheetFunction调用
利用该对象直接调用工作表的TRANSLATE函数,语法示例如下:
' 模块代码中执行 Dim translatedText As String translatedText = Application.WorksheetFunction.Translate("Guten Morgen", "de", "en") Debug.Print translatedText ' 在立即窗口输出翻译结果 ' 立即窗口直接执行语句: ? Application.WorksheetFunction.Translate("Guten Morgen", "de", "en")
方法2:使用Evaluate方法
通过解析工作表公式字符串的方式执行TRANSLATE函数,适合复杂公式场景:
' 模块代码中执行 Dim translatedText As String translatedText = Evaluate("TRANSLATE(""Guten Morgen"", ""de"", ""en"")") Debug.Print translatedText ' 立即窗口直接执行语句: ? Evaluate("TRANSLATE(""Guten Morgen"", ""de"", ""en"")")
关键注意事项
- 必须使用Excel 365(月度/半年度更新频道),TRANSLATE翻译函数是较新功能,旧版本Excel不支持。
- 调用时需保持网络连接,该函数依赖微软翻译服务才能正常运行。
内容的提问来源于stack exchange,提问作者Richard
相关产品推荐
相关产品推荐

