Google在Excel中翻译API仅提供中文音译



我正在使用Excel中的Google Translate API,因此我可以将中文翻译成英语。但是,如果我想将英语翻译成中文,我只会得到chinse的音译,而不是中文字母/字母的翻译。

我必须更改STH。在代码中,我必须更改Excel设置?

谢谢!

Public Function Translate(rng As Range, Optional translateFrom As String = "en", Optional translateTo As String = "zh")
Dim getParam As String, trans As String, objHTTP As Object, URL As String
Set objHTTP = CreateObject("MSXML2.ServerXMLHTTP")
getParam = ConvertToGet(rng.Value)
URL = "https://translate.google.com/m?hl=" & translateFrom & "&sl=" & translateFrom & "&tl=" & translateTo & "&ie=UTF-8&prev=_m&q=" & getParam
objHTTP.Open "GET", URL, False
objHTTP.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
objHTTP.send ("")
If InStr(objHTTP.responseText, "div dir=""ltr""") > 0 Then
    trans = RegexExecute(objHTTP.responseText, "div[^""]*?""ltr"".*?>(.+?)</div>")
    Translate = Clean(trans)
Else
    Translate = CVErr(xlErrValue)
End If
End Function

Sub TranslateCell()
Dim getParam As String, trans As String, translateFrom As String, translateTo As String
translateFrom = "zh"
translateTo = "en"
Set objHTTP = CreateObject("MSXML2.ServerXMLHTTP")
Dim r As Range, cell As Range
Set cell = Selection
For Each cell In Selection.Cells
    getParam = ConvertToGet(cell.Value)
    URL = "https://translate.google.com/m?hl=" & translateFrom & "&sl=" & translateFrom & "&tl=" & translateTo & "&ie=UTF-8&prev=_m&q=" & getParam
    objHTTP.Open "GET", URL, False
    objHTTP.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
    objHTTP.send ("")
    If InStr(objHTTP.responseText, "div dir=""ltr""") > 0 Then
        trans = RegexExecute(objHTTP.responseText, "div[^""]*?""ltr"".*?>(.+?)</div>")
        cell.Value = Clean(trans)
    Else
        MsgBox ("Error")
    End If
Next cell
End Sub

页面返回两个 <div>,所以要么选择一个

trans = RegexExecute(objHTTP.responseText, "div[^""]*?""ltr"".*?""t0"".*?>(.+?)</div>")

或在此处使用以下答复从Google中提取DIV的内容,用VBA

提取

最新更新