|
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
本帖最后由 413191246se 于 2015-10-4 14:13 编辑
139:你好!——2号就看到你的帖子了,但未能出手,因为无计可施,今天我决定还是来老办法(逐字符循环法),毕竟宏比查找替换用起来方便,另外,宏你也可以自己自定义一些标点符号(但要保留原代码)。
****单个文档中,查找重复的标点符号(宏代码)******
- Sub 查找重复标点符号()
- Dim i As Paragraph
- For Each i In ActiveDocument.Paragraphs
- i.Range.Select
- If Len(i.Range) = 1 Then GoTo SkipEmpty
- Selection.HomeKey unit:=wdLine
- Do
- Selection.MoveRight unit:=wdCharacter, Count:=1, Extend:=wdExtend
- If Selection.Characters.Last Like vbCr Then GoTo SkipEmpty
- If Selection.Characters.Last Like "[。;:,、!?;:,.?!…—]" Then
- Do
- Selection.MoveRight unit:=wdCharacter, Count:=1, Extend:=wdExtend
- Loop Until Selection.Characters.Last Like "[!。;:,、!?;:,.?!…—]"
- Selection.MoveEnd unit:=wdCharacter, Count:=-1
- If Len(Selection) > 1 Then Selection.Font.Color = wdColorBlue '蓝色
- If Len(Selection) > 1 Then Selection.Range.HighlightColorIndex = wdBrightGreen '突出显示(鲜绿)
- End If
- Selection.MoveRight unit:=wdCharacter, Count:=1
- Loop
- SkipEmpty:
- Next
- End Sub
复制代码 * 虽然循环处理文件夹内所有文件可以办到,但这个宏,我建议还是先处理单个文档为好!(因为有些标点符号不确定)
* 注意:第10行代码中,like 后面双引号中间用双中括号括着的为要查找的重复的标点符号,双引号括着代码只取其中之一。
* 第13行代码,与第10行代码标点符号是一致的,但是中括号后面有个英文叹号“!”代表“否”,表示如果不是它后面的标点的话,会怎么着。
* 第16行代码,突出显示,可以屏蔽(注释掉),也可以保留,因为取消所有突出显示很简单,只须:编辑菜单——全选——突出显示:无。
* 发现省略号和破折号无法鉴别,也当成不标准符号来看了! |
|