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

如何修改VBA代码实现基于SpanishDict.com的英-墨西哥西班牙语翻译

基于SpanishDict的Excel VBA翻译函数(英语转墨西哥西班牙语)

我是一名教师,在用Excel制作学生进度报告时,需要将面向家长的英语评语翻译成墨西哥西班牙语。之前使用的谷歌翻译VBA输出卡斯蒂利亚西班牙语,不符合需求,现修改为基于SpanishDict实现翻译:

原有谷歌翻译版代码

Function Translate$(sText$, FromLang$, ToLang$)
    Dim p1&, p2&, url$, resp$
    Const DIV_RESULT$ = "<div class=""result-container"">"
    Const URL_TEMPLATE$ = "https://translate.google.com/m?hl=[from]&sl=[from]&tl=[to]&ie=UTF-8&prev=_m&q="
    url = URL_TEMPLATE & WorksheetFunction.EncodeURL(sText)
    url = Replace(url, "[to]", ToLang)
    url = Replace(url, "[from]", FromLang)
    resp = WorksheetFunction.WebService(url)
    p1 = InStr(resp, DIV_RESULT)
    If p1 Then
        p1 = p1 + Len(DIV_RESULT)
        p2 = InStr(p1, resp, "</div>")
        Translate = Mid$(resp, p1, p2 - p1)
    End If
End Function

修改后的SpanishDict版代码

Function TranslateMexican$(sText$, FromLang$, ToLang$)
    Dim p1&, p2&, url$, resp$
    ' SpanishDict翻译请求地址
    Const URL_TEMPLATE$ = "https://www.spanishdict.com/translate/"
    ' 适配页面结构的结果定位标记
    Const RESULT_START$ = "<span class=""dictionaryLink--2wF7Y translation--3IsF6"">"
    Const RESULT_END$ = "</span>"
    
    ' 构造带编码文本的请求URL
    url = URL_TEMPLATE & WorksheetFunction.EncodeURL(sText)
    
    ' 获取页面响应内容
    resp = WorksheetFunction.WebService(url)
    
    ' 定位并提取翻译结果
    p1 = InStr(resp, RESULT_START)
    If p1 > 0 Then
        p1 = p1 + Len(RESULT_START)
        p2 = InStr(p1, resp, RESULT_END)
        If p2 > p1 Then
            TranslateMexican = Mid$(resp, p1, p2 - p1)
        End If
    End If
End Function

使用说明

  • 函数名改为TranslateMexican以明确用途,也可保留原Translate名称直接替换原有函数
  • 无需额外指定语言参数,SpanishDict默认优先返回贴合墨西哥使用习惯的西班牙语翻译
  • Excel单元格中直接调用即可,例如输入=TranslateMexican(A1,"en","es-mx")(后两个参数可省略,不影响结果)

内容的提问来源于stack exchange,提问作者Pat Zaur

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 19:46:17