ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[原创] 英文双引号替换为中文双引号(全自动完美解决!)

[复制链接]

TA的精华主题

TA的得分主题

发表于 2015-11-11 12:07 | 显示全部楼层
本帖最后由 13907933959 于 2015-11-11 14:53 编辑
413191246se 发表于 2015-11-11 09:50
139:过奖!——你说的两宏合并,我认为不必合并。上面的新宏算解决了英文双引号的问题,你说的第一个宏, ...

师傅好!
我现在整理资料中急需一个含有下面这4个功能的宏:

1、将点号转换为句号,但不转换小数点;
2、查找文档中英文省略号,第一个或第四个点被替换成了中文句号,替换回英文省略号,但不转换小数点;
3、将小标题编号后面的标点改为顿号,但不转换小数点;
4、将文档中英文双引号替换成了中文双引号。

1~4个宏、都以有,前3个宏按您教的方法都组合在了一起可用,就是第4个组合不上去,少了一个功能,因此要反复的来几遍,一个是麻烦,再一个整理的资料太多,缺少的这一步也容易忘记,以后再想补上这一步就很难。师傅的新宏完美的解决了英文双引号的问题,如单用、因资料太多要多很多步骤,因此才想请师傅把它组合在一起。

师傅、您重新编辑的《英文标点转中文》宏,没看到。

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-11-11 19:17 | 显示全部楼层
Sub aaa()
'********
End Sub
Sub bbb()
'********
End Sub
---------------139:你只须将前宏末行代码 End Sub 和后宏末行代码 Sub bbb() 删除或注释,即可将两个宏组合在一起,这没有什么技术含量。既然你说我的双引号宏已经OK,你自己组合即可。
你说 1/2/3 三个宏都已经有了?第2个宏英文省略号这个也已经有了?
---------------新宏:
  1. Sub 英文标点转中文()
  2.     Dim i As Long, a, b
  3.     a = Array(".", ",")
  4.     b = Array("。", ",")
  5.     Do
  6.         Selection.HomeKey Unit:=wdStory
  7.         Selection.Find.ClearFormatting
  8.         Do While Selection.Find.Execute(findtext:=a(i), Forward:=True)
  9.             Selection.MoveStart Unit:=wdCharacter, Count:=-1
  10.             If Selection.Characters.First Like "[!0-9a-zA-Z0-9a-zA-Z]" Then Selection.Characters.Last.text = b(i)
  11.             Selection.MoveRight Unit:=wdCharacter, Count:=1
  12.         Loop
  13.         i = i + 1
  14.     Loop Until i = 2
  15. End Sub
复制代码

TA的精华主题

TA的得分主题

发表于 2015-11-12 08:05 | 显示全部楼层
本帖最后由 13907933959 于 2015-11-12 08:46 编辑
413191246se 发表于 2015-11-11 19:17
Sub aaa()
'********
End Sub

师傅好!
请看附件。

附件.rar

4.09 KB, 下载次数: 25

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-11-12 16:42 | 显示全部楼层
139:是有问题!——添加了一个参数开关,把我的《英文双引号转中文》宏第3行代码(取消了使用通配符的勾选,即添加了 , MatchWildcards:=False),改为下面,应该没问题了:
    Do While Selection.Find.Execute(findtext:=Chr(34), Forward:=True, MatchWildcards:=False)

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-11-12 16:52 | 显示全部楼层
下面是最新《英文双引号转中文》宏:
  1. Sub 英文双引号转中文()
  2.     Selection.HomeKey unit:=wdStory
  3.     Selection.Find.ClearFormatting
  4.     Do While Selection.Find.Execute(findtext:=Chr(34), Forward:=True, MatchWildcards:=False)
  5.         Selection.Range.CharacterWidth = wdWidthFullWidth
  6.         Selection.MoveRight unit:=wdCharacter, Count:=1
  7.     Loop
  8.     Selection.HomeKey unit:=wdStory
  9.     Selection.Find.ClearFormatting
  10.     Do While Selection.Find.Execute(findtext:=Chr(-23646), Forward:=True)
  11.         Selection = ChrW(8220)
  12.         Do
  13.             If Selection.Characters.Last.text = vbCr Then GoTo Skip
  14.             Selection.MoveEnd unit:=wdCharacter, Count:=1
  15.         Loop Until Asc(Selection.Characters.Last) = -23646
  16.         Selection.Characters.Last.text = ChrW(8221)
  17. Skip:
  18.         Selection.MoveRight unit:=wdCharacter, Count:=1
  19.     Loop
  20. End Sub
复制代码

TA的精华主题

TA的得分主题

发表于 2015-11-13 07:01 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
413191246se 发表于 2015-11-12 16:52
下面是最新《英文双引号转中文》宏:

师傅好!
现在OK了,感谢师傅!

师傅、您有不有“守柔Word文本筛——文档重复段落和相似段落分析工具”?如有请师傅上传一个给我。

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-11-13 10:38 | 显示全部楼层
139,可网络搜索试试,另外,他不家《守柔编程代码集》,网络搜索。

TA的精华主题

TA的得分主题

发表于 2015-11-15 08:05 | 显示全部楼层
413191246se 发表于 2015-11-13 10:38
139,可网络搜索试试,另外,他不家《守柔编程代码集》,网络搜索。

师傅好!
我前一段时间也找过,网上搜索不到。

TA的精华主题

TA的得分主题

发表于 2018-2-4 15:21 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2018-2-12 21:30 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-22 16:17 , Processed in 0.032136 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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