为什么此VBA代码不起作用?有了这个普通的文字。
不幸的是,我的通配符搜索也将找到这些实例。有没有一种方法可以在Word宏中查找具有不同格式的文本?
Sub test()
With ActiveDocument.Content.Find
.ClearFormatting
.Text = "~~~" & "[a-zA-Z]" & "~~~"
.Replacement.ClearFormatting
.Replacement.Font.Name = "Arial"
.Replacement.Text = "^&"
.Format = True
.Forward = True
.Wrap = wdFindStop
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
.Execute Replace:=wdReplaceAll
End With
End Sub
答案 0 :(得分:0)
查找替换存在一些问题。
更改
.MatchWildcards = False
到
.MatchWildcards = True
并且您的替换功能应该起作用。
[]中的字符范围必须按升序字符值顺序排列,因此应为[A-Za-z]。另外,为了给您更大的灵活性,您可以在查找模式的不同部分周围放置方括号,然后使用\ n引用这些(),其中n是1-9的序数形式。
因此,查找文本最好用“(~~~)([A-Za-z])(~~~)”表示,替换文本用“ \ 1 \ 2 \ 3”表示
如果您只想更改普通样式的文本,则必须指定样式
例如添加
.style = "Normal"
尝试上面建议的更改,让我们知道您的工作方式。