实例需求:Word文档如下图中上半部分所示,现在需要将括号内的文字作为单独段落,并且删除括号,如下图所示。
示例代码如下。
Sub WordReplace()
With Selection.Find
.ClearFormatting
.Replacement.ClearFormatting
.Text = "((*))"
.Replacement.Text = "^p\1"
.Forward = True
.Wrap = wdFindStop
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchByte = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = True
.Find.Execute Replace:=wdReplaceAll
End With
End Sub
【代码解析】
第3行代码清除查找格式。
第4行代码清除替换格式。
第5行代码设置查找内容,注意此处外层括号为全局圆括号,即原文档中的括号,内层为半角括号,即查找匹配组,其中型号可以匹配任意多个字符。
第6行代码设置替换内容,其中^p
为段落标记,\1
为查找结果中第一个匹配组。
第7~14行代码设置为Word查找的一些通用设置。
第15行代码设置使用通配符查找模式。
第16行代码在全部文档中进行替换。
对于这个需求,通常的编程实现思路是使用查找功能先定位括号,然后再逐个处理,插入段落标志,进而删除括号,这个思路肯定可以实现同样的结果,但是代码略多,合理使用Word内置查找替换可以更简洁地解决问题。
其实无需使用代码,直接使用Word查找替换功能,也可以解决此问题,如下图所示。