大家好,提前感谢您的任何回复;
这个问题是关于仅在某些条件下替换文本。
背景:我正在为一个学术机构的编辑部做一个宏。他们收到大量具有相同问题的文档,并要求提供一些帮助以减少在每个文档上花费的时间。
他们想要的两件事:
- 如果连字符在两位数之间,请将其更改为破折号
- 将每个与号 (&) 更改为单词“and”
我有一个 RegExp 可以很好地找到并替换那些连字符,但我注意到了一个问题。我的查找/替换更改了超链接的“显示文本”。与 & 符号相同。坏的。所以我想弄清楚的是如何排除具有 Selection.Style = Word.ActiveDocument.Styles("Hyperlink") 的文本
顺便说一句,“不等于”的逻辑运算符是什么?我试过 <> 和 >< 但我总是得到一个错误,告诉我需要一个表达式。我是 VBA 新手,所以请原谅新手的问题。
这是有效的(更大的 Sub 的一部分):
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "([0-9])-([0-9])"
.Replacement.Text = "\1" & Chr$(150) & "\2"
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = True
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
那么我可以创建一个 If/Then 语句来告诉它仅在样式不是超链接时替换吗?
再次感谢,丽莎
PS我搜索了类似的帖子并找到了一个,但从未得到答复。