You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求适用于Excel 2019 Professional Plus的谷歌翻译VBA宏(无需API)

无需Google Translate API的Excel 2019 Professional Plus VBA谷歌翻译方案

方案一:基于XMLHTTP请求网页接口(轻量型)

该方案通过调用谷歌翻译的网页接口获取结果,无需额外控件,适合快速批量翻译。

  1. 启用必要引用

    • 打开VBA编辑器(Alt+F11),点击「工具」→「引用」,勾选Microsoft XML, v6.0,确定保存。
  2. 复制以下宏代码

Function GoogleTranslate(ByVal inputText As String, Optional fromLang As String = "auto", Optional toLang As String = "zh-CN") As String
    Dim xmlHttp As MSXML2.XMLHTTP60
    Dim htmlDoc As MSHTML.HTMLDocument
    Dim translateResult As Object
    
    Set xmlHttp = New MSXML2.XMLHTTP60
    Set htmlDoc = New MSHTML.HTMLDocument
    
    ' 构造请求URL和参数
    Dim url As String
    url = "https://translate.google.com/m?sl=" & fromLang & "&tl=" & toLang & "&q=" & URLEncode(inputText)
    
    With xmlHttp
        .Open "GET", url, False
        .setRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36"
        .send
    End With
    
    If xmlHttp.Status = 200 Then
        htmlDoc.body.innerHTML = xmlHttp.responseText
        ' 提取翻译结果(谷歌页面结构可能更新,需根据实际调整选择器)
        Set translateResult = htmlDoc.querySelector("div[class*='result-container']")
        If Not translateResult Is Nothing Then
            GoogleTranslate = translateResult.innerText
        Else
            GoogleTranslate = "翻译失败:未找到结果"
        End If
    Else
        GoogleTranslate = "请求失败:状态码" & xmlHttp.Status
    End If
    
    Set xmlHttp = Nothing
    Set htmlDoc = Nothing
    Set translateResult = Nothing
End Function

' 辅助函数:URL编码
Function URLEncode(ByVal str As String) As String
    Dim bytes() As Byte
    bytes = StrConv(str, vbUnicode)
    Dim i As Integer
    Dim charCode As Integer
    For i = 0 To UBound(bytes) Step 2
        charCode = bytes(i)
        Select Case charCode
            Case 48 To 57, 65 To 90, 97 To 122, 45, 46, 95, 126
                URLEncode = URLEncode & Chr(charCode)
            Case 32
                URLEncode = URLEncode & "+"
            Case Else
                URLEncode = URLEncode & "%" & Hex(charCode)
        End Select
    Next i
End Function
  1. 使用方法
    • 在Excel单元格中输入=GoogleTranslate(A1,"en","zh-CN"),即可将A1单元格的英文翻译成中文,参数可按需调整(fromLang为源语言代码,toLang为目标语言代码,如"en"、"ja"等)。

方案二:基于WebBrowser控件(稳定型)

如果方案一因谷歌反爬机制失效,可使用该方案模拟浏览器操作,兼容性更强。

  1. 插入WebBrowser控件

    • 打开Excel开发工具选项卡,点击「插入」→「其他控件」,找到Microsoft Web Browser,在工作表中绘制一个控件(可调整大小或隐藏)。
  2. 复制以下宏代码

Sub BatchTranslate()
    Dim ws As Worksheet
    Dim rng As Range
    Dim targetCell As Range
    Dim webCtrl As WebBrowser
    Dim htmlDoc As MSHTML.HTMLDocument
    Dim translateResult As Object
    
    Set ws = ActiveSheet
    Set rng = Application.InputBox("请选择需要翻译的单元格区域", Type:=8)
    Set webCtrl = ws.WebBrowser1
    
    ' 初始化浏览器
    webCtrl.Navigate "https://translate.google.com"
    Do While webCtrl.Busy Or webCtrl.ReadyState <> READYSTATE_COMPLETE
        DoEvents
    Loop
    
    For Each targetCell In rng
        If targetCell.Value <> "" Then
            ' 输入要翻译的文本
            webCtrl.Document.getElementById("source").Value = targetCell.Value
            ' 等待翻译完成
            Application.Wait Now + TimeValue("00:00:02")
            ' 提取翻译结果
            Set htmlDoc = webCtrl.Document
            Set translateResult = htmlDoc.querySelector("span[class*='tlid-translation']")
            If Not translateResult Is Nothing Then
                targetCell.Offset(0, 1).Value = translateResult.innerText
            Else
                targetCell.Offset(0, 1).Value = "翻译失败"
            End If
        End If
    Next targetCell
    
    Set webCtrl = Nothing
    Set htmlDoc = Nothing
    Set translateResult = Nothing
End Sub
  1. 使用方法
    • 运行宏BatchTranslate,按提示选择需要翻译的单元格区域,翻译结果会自动填充到选中单元格右侧的列。

注意事项

  • 谷歌翻译的页面结构可能随时更新,若代码失效,需调整querySelector中的选择器(可通过浏览器开发者工具查看元素类名)。
  • 需调整Excel宏安全设置:文件→选项→信任中心→信任中心设置→宏设置,选择「启用所有宏」(仅在信任的文件中使用)。
  • 批量翻译时建议添加适当延迟,避免触发谷歌的反爬限制。

内容的提问来源于stack exchange,提问作者Steep Besoin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 00:40:28