ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: lb789456

[已解决] 关于使用bing翻译进行批量翻译的请教

[复制链接]

TA的精华主题

TA的得分主题

发表于 2019-3-29 20:08 | 显示全部楼层
fengxiliu 发表于 2018-11-14 19:26
老师,您好,看到您分享的关于excel中使用有道批量翻译的函数帮助非常大,这里想咨询您一个问题,公式中有 ...

要求返回的是xml才能用这方法,否则要写自定义函数,倒也不太复杂。尽量用最新版本的office,powerquery应该能不用编程解决你的问题。

TA的精华主题

TA的得分主题

发表于 2019-4-24 09:44 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
我看这个,如何调整要翻译的语言

TA的精华主题

TA的得分主题

发表于 2019-5-14 13:16 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
硅谷少年 发表于 2018-9-12 21:24
excel版本不够吧?需要office2013、2016、office365才可以,低版本不行。

请问谷歌翻译的接口如何做?
我要做一个东西也要用到。
http://club.excelhome.net/thread-1477126-1-1.html

TA的精华主题

TA的得分主题

发表于 2019-5-15 09:43 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
jimmyhwang01 发表于 2019-5-14 13:16
请问谷歌翻译的接口如何做?
我要做一个东西也要用到。
http://club.excelhome.net/thread-1477126-1-1 ...

我谷歌翻译用的这个:
  1. Function CN2EN(rng)
  2.     Dim xml
  3.     Dim url$, EngSentence$
  4.     Set xml = CreateObject("MSXML2.XMLHTTP")
  5.     EngSentence = Escape(rng.Value)
  6.     url = "https://translate.google.cn/m?hl=zh-CN&sl=zh-CN&tl=en&ie=UTF-8&prev=_m&q=" & EngSentence
  7.     With xml
  8.       .Open "GET", url, False
  9.       .Send
  10.         If InStr(.ResponseText, "<div dir=""ltr"" class=""t0"">") > 0 Then
  11.             CN2EN = Split(Split(.ResponseText, "<div dir=""ltr"" class=""t0"">")(1), "</div><")(0)
  12.         End If
  13.     End With
  14. End Function
  15. Function URLEncodePlus(strURL)
  16. 'ANSI编码,空格处理成+号
  17.     Dim i
  18.     Dim tempStr
  19.     For i = 1 To Len(strURL)
  20.         If Asc(Mid(strURL, i, 1)) < 0 Then
  21.             tempStr = "%" & Right(CStr(Hex(Asc(Mid(strURL, i, 1)))), 2)
  22.             tempStr = "%" & Left(CStr(Hex(Asc(Mid(strURL, i, 1)))), Len(CStr(Hex(Asc(Mid(strURL, i, 1))))) - 2) & tempStr
  23.             URLEncodePlus = URLEncodePlus & tempStr
  24.         ElseIf (Asc(Mid(strURL, i, 1)) >= 65 And Asc(Mid(strURL, i, 1)) <= 90) Or _
  25.                  (Asc(Mid(strURL, i, 1)) >= 97 And Asc(Mid(strURL, i, 1)) <= 122) Or _
  26.                  (Asc(Mid(strURL, i, 1)) >= 48 And Asc(Mid(strURL, i, 1)) <= 57) Then
  27.             URLEncodePlus = URLEncodePlus & Mid(strURL, i, 1)
  28.         Else
  29.             tempStr = Mid(strURL, i, 1)
  30.             Select Case tempStr
  31.             Case ".", "-", "~", "_"                                               '如果发现网站有其他不需要编码的字符,放在这里
  32.                 URLEncodePlus = URLEncodePlus & tempStr
  33.             Case " "
  34.                 URLEncodePlus = URLEncodePlus & "+"
  35.             Case Else
  36.                 URLEncodePlus = URLEncodePlus & "%" & Hex(Asc(tempStr))
  37.             End Select
  38.         End If
  39.     Next
  40. End Function

  41. Function GetURL$(txt$)
  42.     Dim a() As Byte: a = StrConv(txt, vbFromUnicode, &H804)
  43.     For i = 0 To UBound(a)
  44.         GetURL = GetURL & IIf(a(i) < 128, Chr(a(i)), "%" & Hex(a(i)))
  45.     Next
  46. End Function

  47. Function Escape(ByVal strText As String) As String
  48.     Set JS = CreateObjectx86("msscriptcontrol.scriptcontrol")
  49.     JS.Language = "JavaScript"
  50.     Escape = JS.Eval("encodeURIComponent('" & Replace(Replace(strText, "'", "\'"), Chr(10), "") & "');")
  51. End Function
复制代码

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2019-7-20 08:54 | 显示全部楼层
硅谷少年 发表于 2019-5-15 09:43
我谷歌翻译用的这个:

请教大侠: 能否发个附件成品、谢谢!

TA的精华主题

TA的得分主题

发表于 2019-7-20 15:13 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2019-7-20 17:05 | 显示全部楼层
硅谷少年 发表于 2018-9-12 21:24
excel版本不够吧?需要office2013、2016、office365才可以,低版本不行。

可惜我下载的一个精简office2016、excel用不了、
说是Excel 词典(XLLEX.DLL)文件丢失或损坏

TA的精华主题

TA的得分主题

发表于 2019-7-25 13:53 | 显示全部楼层
用这个,这是我最后改良的版本,fy("hello") 返回 你好,fy("你好") 返回 Hello。
  1. Function fy(str)
  2.     Dim xml
  3.     Dim url$, EngSentence$
  4.     Set xml = CreateObject("MSXML2.XMLHTTP")
  5.     EngSentence = UTF8EncodeURI(str)
  6.     url1 = "https://translate.google.cn/m?hl=en&sl=en&tl=zh-CN&ie=UTF-8&prev=_m&q=" & EngSentence
  7.     url2 = "https://translate.google.cn/m?hl=en&sl=zh-CN&tl=en&ie=UTF-8&prev=_m&q=" & EngSentence
  8.     If Asc(Left(str, 1)) > 0 And Asc(Left(str, 1)) < 128 Then url = url1 Else url = url2
  9.     With xml
  10.       .Open "GET", url, False
  11.       .Send
  12.        If InStr(.ResponseText, "<div dir=""ltr"" class=""t0"">") > 0 Then
  13.             fy = Split(Split(.ResponseText, "<div dir=""ltr"" class=""t0"">")(1), "</div><")(0)
  14.         Else
  15.             MsgBox "Error": Exit Function
  16.         End If
  17.     End With
  18. End Function

  19. Function UTF8EncodeURI(szInput)
  20.     Dim wch, uch, szRet
  21.     Dim x
  22.     Dim nAsc, nAsc2, nAsc3
  23.     If szInput = "" Then
  24.         UTF8EncodeURI = szInput
  25.         Exit Function
  26.     End If
  27.     For x = 1 To Len(szInput)
  28.         wch = Mid(szInput, x, 1)
  29.         nAsc = AscW(wch)
  30.         If nAsc < 0 Then nAsc = nAsc + 65536
  31.         If (nAsc And &HFF80) = 0 Then
  32.             szRet = szRet & wch
  33.         Else
  34.             If (nAsc And &HF000) = 0 Then
  35.                 uch = "%" & Hex(((nAsc \ 2 ^ 6)) Or &HC0) & Hex(nAsc And &H3F Or &H80)
  36.                 szRet = szRet & uch
  37.             Else
  38.                 uch = "%" & Hex((nAsc \ 2 ^ 12) Or &HE0) & "%" & _
  39.                       Hex((nAsc \ 2 ^ 6) And &H3F Or &H80) & "%" & _
  40.                       Hex(nAsc And &H3F Or &H80)
  41.                 szRet = szRet & uch
  42.             End If
  43.         End If
  44.     Next
  45.     UTF8EncodeURI = szRet
  46. End Function
复制代码

评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2020-10-19 19:00 | 显示全部楼层
硅谷少年 发表于 2019-7-25 13:53
用这个,这是我最后改良的版本,fy("hello") 返回 你好,fy("你好") 返回 Hello。

这个厉害,我用大神的代码,成功修改成中韩互译,非常感谢

TA的精华主题

TA的得分主题

发表于 2021-3-14 11:51 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
硅谷少年 发表于 2019-7-25 13:53
用这个,这是我最后改良的版本,fy("hello") 返回 你好,fy("你好") 返回 Hello。

谷歌改版了原来代码报错了,第12,13行代码, 那个字符串要换成 "<div class=""""result-container"""">",InStr(.ResponseText, "<div class=""""result-container"""">") 这样才能恢复正常。

评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-5-9 06:24 , Processed in 0.045941 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表