我广泛使用 MS Word 的语音转文本功能,但它经常将我的逗号解释为“注释”或“常见”。我要求 ChatGPT 编写一个修复宏(见下文),它建议使用:.Text = "comment|common"。我喜欢使用管道符号来提供逻辑“OR”的想法,但它似乎不适用于 MS Word。是ChatGPT的错还是微软的错?无论如何,有没有办法将布尔逻辑设计到 VBA .Find 语句中?
Dim myRange As Range
Set myRange = ActiveDocument.Content
With myRange.Find
.Text = "comment|common"
.Replacement.Text = ","
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = True
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
myRange.Find.Execute Replace:=wdReplaceAll
End Sub
Run Code Online (Sandbox Code Playgroud)
您可以使用通配符来匹配这两个单词。
搜索表达式<comm[eo][nt]{1,2}>将匹配 common 和 comment。
<单词的开头comm匹配 comment 和 common 的开头[eo]匹配“e”或“o”之一[nt]{1,2}匹配“n”、“t”、“nt”、“nn”或“tt”。我想不出更干净的方法来获得两个词尾。>一个词的结尾Dim myRange As Range
Set myRange = ActiveDocument.Content
With myRange.Find
.Text = "<comm[eo][nt]{1,2}>"
.Replacement.Text = ","
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = True
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
myRange.Find.Execute Replace:=wdReplaceAll
Run Code Online (Sandbox Code Playgroud)