Microsoft Excel 本身并不提供文本翻译功能,但您可以使用其他工具来实现这一目的,例如:
- 使用谷歌翻译:打开谷歌翻译网站(https://translate.google.com),将要翻译的文本复制并粘贴到左侧的文本框中,然后选择目标语言。然后,将翻译结果复制并粘贴到 Excel 中的相应单元格。
- 使用翻译函数:Excel 提供了一些函数,例如 GOOGLETRANSLATE 和 BINGTRANSLATE,可以在 Excel 中进行翻译。这些函数使用互联网翻译服务来翻译文本。这些函数不是默认加载的,您需要使用 Excel 的函数向导添加它们。要使用这些函数,您需要输入翻译文本和源语言以及目标语言的代码。例如,使用 GOOGLETRANSLATE 函数将单元格 A1 中的文本翻译成英文:
=GOOGLETRANSLATE(A1,"auto","en")
。 - 使用宏:您可以编写一个宏来使用外部翻译 API 来翻译 Excel 工作簿中的文本。这需要一些编程技能,但是您可以找到一些可用的宏代码或者可以自己编写代码。
请注意,使用这些方法翻译文本可能会导致一些翻译错误或不准确的结果,特别是当涉及到复杂或技术性的术语时。所以在使用翻译工具时要小心,需要逐个单元格核对并校对翻译结果。
谷歌翻译函数
GoogleTranslate(text, [from_lanaguage], [to_lanaguage])。参数 text 指待翻译的内容,from_language 指待翻译的语言,默认是英文 en,to_language 指目标翻译语言,默认翻译是中文 zh-CN,即将英文翻译成中文。该公式使用谷歌移动端网页翻译接口,可即时返回翻译结果,适合关键词、单词等翻译场景。或通过公式 =GetGoogleLanguageList() 查询谷歌语言代码。
谷歌翻译函数
GoogleTranslateByServer(text, [from_lanaguage], [to_lanaguage])。参数 text 指待翻译的内容,from_language 指待翻译的语言,默认是英文 en,to_language 指目标翻译语言,默认翻译是中文 zh-CN,即将英文翻译成中文。该函数每批次翻译需 10-30 秒,每批次可处理 100 个翻译请求或字符合计小于 4000。当出现“后台正在处理”或为空时,请按照发送的请求数量多少,稍后一段时间再刷新公式获得翻译结果。谷歌翻译视频教程 谷歌小语种翻译视频教程 收费函数 下载语言代码, 或通过公式 =GetGoogleLanguageList() 查询谷歌语言代码。
谷歌翻译函数
GoogleTranslateW(text, [from_lanaguage], [to_lanaguage]) 参数 text 指待翻译的文字,参数 text 指待翻译的内容,from_language 指待翻译的语言,默认是英文 en,to_language 指目标翻译语言,默认翻译是中文 zh-CN,即将英文翻译成中文。该函数调用谷歌网页翻译接口。
微软翻译函数
BingTranslateW(text, [from_lanaguage], [to_lanaguage]) 此函数需借助 Excel 浏览器。查看演示 收费函数 下载语言代码, 或通过公式 =GetBingLanguageList() 查询 Bing 语言代码。
百度翻译 API 函数
Fanyi(text, [from_lanaguage], [to_lanaguage], [App_id],[Secret_key]) 参数 text 指待翻译的内容,from_language 指待翻译的语言,默认是英文 en,to_language 指目标翻译语言,默认翻译是中文 zh,即将英文翻译成中文。App_id 指百度翻译开放平台应用 id;Secret_key 指百度翻译开放平台应用密钥,可从百度翻译开放平台申请。该函数调用百度翻译 API 接口。
百度翻译函数
BaiduFanyiW(text, [from_lanaguage], [to_lanaguage]) 参数 text 指待翻译的内容,from_language 指待翻译的语言,默认是英文 en,to_language 指目标翻译语言,默认翻译是中文 zh-CN,即将英文翻译成中文。该函数调用网页翻译接口。
Deepl 翻译函数
DeepLTranslate(text, [from_lanaguage], [to_lanaguage])。以 DeepL 世界领先的神经网络技术为动力,用卓越的机器翻译来翻译您的文本。可通过公式 =GetDeepLLanguageList() 查询 DeepL 语言代码。如果出现“后台正在处理”请等待数分钟后再重新计算公式,为了保证翻译准确性,限制了翻译速度,如果追求翻译准确性,请耐心等待。
Deepl 翻译函数
DeepLTranslateW(text, [from_lanaguage], [to_lanaguage]) 以 DeepL 世界领先的神经网络技术为动力,用卓越的机器翻译来翻译您的文本。可通过公式 =GetDeepLLanguageList() 查询 DeepL 语言代码。
搜狗翻译函数
SogouFanyiW()(text, [from_lanaguage], [to_lanaguage]) 参数 text 指待翻译的文字。该函数调用搜狗网页翻译接口。可通过公式 =GetSogouLanguageList() 查询搜狗语言代码。
有道翻译 API 函数
YoudaoFanyi(text, [from_lanaguage], [to_lanaguage], [App_id],[Secret_key]) 参数 text 指待翻译的内容,from_language 指待翻译的语言,默认是英文 en,to_language 指目标翻译语言,默认翻译是中文 zh-CHS,即将英文翻译成中文。App_id 指有道翻译开放平台应用 id;Secret_key 指有道翻译开放平台应用密钥,可从有道翻译开放平台申请。该函数调用有道翻译 API 接口。收费函数 可通过公式 =GetYoudaoLanguageList() 查询有道语言代码。
阿里云翻译函数(免费)
AliyunFanyi(accessKeyId, accessSecret, text, [from_lanaguage], [to_lanaguage]) 参数 text 指待翻译的文字。该函数后台调用阿里云翻译接口。
有道翻译函数(免费)
YoudaoFanyiW(text) 参数 text 指待翻译的文字。该函数调用有道网页翻译接口。
钉钉翻译函数(免费)
DDFanyi(text,[from_lanaguage], [to_lanaguage]) 参数 text 指待翻译的文字。该函数调用钉钉 AI 文本翻译接口。
如何在 VBA 中调用翻译公式
在 VBA 中也可调用 Excel API 函数库的函数,如下图所示,在 VBA 中调用自定义函数 Fanyi()。值得注意的是,输入参数时使用到的双引号,必须转义,连续输入两个双引号表示输入一个双引号字符串。
宏代码方案
以下是一个使用外部翻译 API 来翻译 Excel 工作簿中文本的宏的示例。请注意,此示例使用的是谷歌翻译 API,您需要获取 API 密钥来使用此宏。
' 定义使用的 API 密钥和翻译目标语言代码
Const API_KEY As String = "your_api_key_here"
Const TARGET_LANGUAGE As String = "en" ' 英文
Sub TranslateCells()
Dim cell As Range
Dim translation As String
Dim json As Object
Dim i As Integer
' 循环处理所有选定的单元格
For Each cell In Selection
' 使用谷歌翻译 API 进行翻译
translation = TranslateWithGoogle(cell.Value, TARGET_LANGUAGE, API_KEY)
' 将翻译结果写回单元格
cell.Offset(0, 1).Value = translation
' 等待一段时间,避免频繁访问 API
Application.Wait (Now + TimeValue("0:00:01"))
Next cell
End Sub
Function TranslateWithGoogle(text As String, targetLanguage As String, apiKey As String) As String
Dim xhr As Object
Dim json As Object
Dim translation As String
' 创建 XMLHttpRequest 对象
Set xhr = CreateObject("MSXML2.XMLHTTP")
' 设置请求的 URL 和参数
xhr.Open "POST", "https://translation.googleapis.com/language/translate/v2?key=" & apiKey, False
xhr.setRequestHeader "Content-Type", "application/json"
xhr.send "{""q"":""" & text & """,""target"":""" & targetLanguage & """}"
' 将响应数据解析为 JSON 对象
Set json = JsonConverter.ParseJson(xhr.responseText)
' 从 JSON 对象中获取翻译结果
translation = json("data")("translations")(1)("translatedText")
' 返回翻译结果
TranslateWithGoogle = translation
End Function
这个宏会循环处理选定的单元格,并将每个单元格中的文本翻译为目标语言,然后将翻译结果写回单元格的右侧。在循环的每一次迭代中,宏都会使用 TranslateWithGoogle 函数来调用谷歌翻译 API,并获取翻译结果。为了避免频繁访问 API,宏在每个单元格处理完毕后会等待 1 秒钟。请注意,此宏中使用了一个名为 JsonConverter 的 JSON 解析器库,您需要将其添加到 VBA 项目中才能使宏正常工作。