不能在Word文档中使用正则表达式;正则表达式只能在从文档中提取的字符串上运行(分配给字符串变量)。但是文档中的位置和任何格式信息都会丢失。任何搜索都必须使用Word的内置通配符功能来完成,该功能类似于RegEx,但不同于RegEx,也不是“强大的”。
通过使用提供的示例文本进行测试,此搜索字符串可以工作:
[!^011-^0126]
. 这搜索任何东西
不
126
,作为文字字符。
Sub Highlight_Words()
Dim Pattern As String
Pattern = "[!^011-^0126]"
Application.ScreenUpdating = False
Options.DefaultHighlightColorIndex = wdRed
With ActiveDocument.Content.Find
.ClearFormatting
.Text = Pattern
With .Replacement
.Text = "^&"
.ClearFormatting
.Highlight = True
End With
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchWildcards = True
.Execute Replace:=wdReplaceAll
End With
Application.ScreenUpdating = True
End Sub