ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: 哎哟喂先森

[分享] 分享EXCEL批量英译中谷歌翻译,无需安装插件即可实现

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2020-2-12 20:33 | 显示全部楼层
附件如下,请打开一看。

不能正确显示.rar

14.93 KB, 下载次数: 228

TA的精华主题

TA的得分主题

发表于 2020-2-13 10:07 | 显示全部楼层
weiyingde 发表于 2020-2-12 20:32
老师好,我想把它引入word 模板中,红字的地方作修改(不修改显然不能运行)
却出现乱码:
Public Func ...

老师好!不太熟悉WORD。
如果只是英译中的话,可以不用这个函数!

TA的精华主题

TA的得分主题

发表于 2020-2-13 10:28 | 显示全部楼层
或者用下面的函数替换

Function encodeURI(strText As String) As String
    With CreateObject("msscriptcontrol.scriptcontrol")
        .Language = "JavaScript"
        encodeURI = .Eval("encodeURIComponent('" & strText & "');")
    End With
End Function

TA的精华主题

TA的得分主题

发表于 2020-2-13 10:55 | 显示全部楼层
YZC51 发表于 2019-11-20 18:33
跟学习下。谢谢老师!
Public Function EnToCh(rng As String, z)
    Dim xml

在Excel中,有两个Replace函数:
1、VBA工程函数,有两种写法:
    ⑴直接使用:sr=replace("中华人民共和国公民", "人民共和国公民", "老百姓")。
    ⑵加个VBA:sr = VBA.replace("中华人民共和国公民", "人民共和国公民", "老百姓")。
2、一个是WorksheetFunction的replace工作表函数,据说(我没有查阅到权威说法,只是在网上听人说,但我在VBA中测试是成功的)在Excel VBA中使用该函数有两种写法:
   ⑴sr = Application.WorksheetFunction.replaceApplication.Replace("中华人民国共和国公民", 3, 7, "老百姓")
   ⑵sr = Application.replaceApplication.Replace("中华人民国共和国公民", 3, 7, "老百姓")
结论:
     ⑴在Excel中确有两个Replace函数:一个是VBA工程函数,一个是Excel工作表函数,且两个函数在VBA代码中的写法不一样。
     ⑵两个函数的参数个数类型不一样:工程函数Replace有三个参数,都是字符串类型;工作表函数Replace四个函数:一、四时字符串,二、三两个参数是integer类型的,是数字。
     ⑶根据你在Excel代码中的写法,推断这个Replace应该是工作表函数。
试验:
     ⑴从Application.Replace(GetURL1, 11, , 10)中可以看出,应该有四个参数,虽然你留有一个参数位置(是省略了吗?),然而我在Excel工作表中用这种写法测试,是不成功的。况且,二、三两个参数都是数字类型的,能省略吗?接着,我又将其看做是工作表函数,将其写作Application.WorksheetFunction.Replace(GetURL1, 11, , 10),仍然报错,看来,应该不是工作表函数。
     ⑵不是工作表函数,那就是工程函数了,我将其写成VBA.Replace(GetURL1, 11, , 10)测试,又报错了。
     怪事:难道这个Replace是个怪种:既不是工程函数,又不是工作表函数呢?!!
     ⑶引用到Word.Application中继续测试。先在WordVBA工程中勾选Excel工程引用,尽管我推测它是Excel工作表函数的可能,我还是做了四种写法的尝试:
     A、Excel.Application.Replace(Excel.Application.Replace(GetURL1, 11, , 10), 5, , 10)
     B、Excel.VBA.Replace(Excel.VBA.Replace(GetURL1, 11, , 10), 5, , 10)
     C、Excel.Application.WorksheetFunction.Replace(Excel.Application.WorksheetFunction.Replace(GetURL1, 11, , 10), 5, , 10)
     D、Replace(Replace(GetURL1, 11, , 10), 5, , 10)'Word.Application VBA工程中也有Replace函数,可以直接用。
     结果,出乎我的双重意外:①不是工作表函数,报错。②作工程函数,没有报错。然而出现乱码!!!

     呜呼,怪哉!怪哉!!你这个Replace到底是何方神圣?哪里的怪种??
     期盼E友、老师、大侠指点迷津!!
     先谢了,在线等。
     盼你的回音…………

     

TA的精华主题

TA的得分主题

发表于 2020-2-13 13:00 | 显示全部楼层
老师好!非常佩服您的钻研精神。详细信息本人也不清楚。号请大师们指教!
摘录一段VBA函数说明。
Replace函数
描述
返回一个字符串,该字符串中指定的子字符串已被替换成另一子字符串,并且替换发生的次数也是指定的。
语法几
Replace(expression, find, replace[, start[, count[, compare]]])
Replace函数语法有如下命名参数:
部分        描述
expression        必需的。字符串表达式,包含要替换的子字符串。
find        必需的。要搜索到的子字符串。
replace        必需的。用来替换的子字符串。
start        可选的。在表达式中子字符串搜索的开始位置。如果忽略,假定从1开始。
count        可选的。子字符串进行替换的次数。如忽略,缺省值是–1,它表明进行所有可能的替换。
compare        可选的。数字值,表示判别子字符串时所用的比较方式。关于其值,请参阅“设置值”部分。
设置值
compare参数的设置值如下:
常数        值        描述
vbUseCompareOption        –1        使用Option Compare语句的设置值来执行比较。
vbBinaryCompare        0        执行二进制比较。
vbTextCompare        1        执行文字比较。
vbDatabaseCompare        2        仅用于Microsoft Access。基于您的数据库的信息执行比较。
返回值
Replace的返回值如下:
如果        Replace返回值
expression长度为零        零长度字符串("")。
expression为Null        一个错误。
find长度为零        expression的副本。
replace长度为零        expression的副本,其中删除了所有出现的find的字符串。
start > Len(expression)        长度为零的字符串。
count is 0        expression的复本。
说明
Replace函数的返回值是一个字符串,但其中从start所指定的位置开始,到expression字符串的结尾处的一段子字符串已经发生过替换动作。并不是原字符串从头到尾的一个复制。
要在在字符串中任一位置插入子串,可以用REPLACE函数,这是帮助和书上没有说的,非常好用!切记
语法
REPLACE(old_text,start_num, ,new_text)
Old_text 是要插入其部分字符的文本。
Start_num 是要用 new_text 插入的 old_text 中字符的位置。
Num_chars 是希望 REPLACE 使用 new_text 插入 old_text 中字符时,参数为零或省略。
New_text 是要用于插入 old_text 中字符的文本。
例:A1=123456789,在第4个字符前插入abc, =REPLACE(A1,4,,"abc")=123abc456789
=REPLACE("123456789",1,2,"AB")   將123456789此字串,第一字元起數二個字元,換成AB
=REPLACE("123456789",1,3,"AB")   將123456789此字串,第一字元起數三個字元,換成AB
=REPLACE("123456789",1,4,"AB")  將123456789此字串,第一字元起數四個字元,換成AB
=REPLACE("123456789",1,2,)    將123456789此字串,第一字元起數二個字元,換成空值
=REPLACE("123456789",1,3,)    將123456789此字串,第一字元起數三個字元,換成空值
=REPLACE("123456789",1,4,)    將123456789此字串,第一字元起數四個字元,換成空值
请问,一个公式A1(1234567)   =replace(A1,5,,” “)中,5后面的那个原本应该表示字符数用逗号直接过是什么意思?

TA的精华主题

TA的得分主题

发表于 2020-2-13 14:06 | 显示全部楼层
帖子审核中......
请稍等

TA的精华主题

TA的得分主题

发表于 2020-2-14 21:37 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2020-3-22 23:39 | 显示全部楼层

大神,日语翻译成中文怎么设置呀,我换了网址,发现不行,是不是还要设置其它参数?求指教

TA的精华主题

TA的得分主题

发表于 2020-6-21 12:19 | 显示全部楼层
翻译英文中 如果存在特殊符号比如“&”会只翻译前面部分的。请问该如何解决?

TA的精华主题

TA的得分主题

发表于 2020-8-24 18:33 | 显示全部楼层
YZC51 发表于 2019-11-20 20:40
优化下
Public Function EnToCh(rng As String)
    Dim xml

老师  不知道你能否帮改一下不是公式版的   我数据在A列  翻译结果放在B列,想做一个按钮点一下就好了,不知道老师是否能帮我。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-16 11:26 , Processed in 0.040304 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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