在查找/替换中使用ReplaceAll,但删除源格式
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在查找/替换中使用ReplaceAll,但删除源格式相关的知识,希望对你有一定的参考价值。
我需要一些帮助。我有一些代码从Excel工作表复制过滤范围,并将其粘贴到Word中的各个位置,替换特定的单词。问题是当我不使用wdReplaceAll
时,它似乎使用目标格式粘贴值(一次)。但是,当我使用ReplaceAll时,包含了源Excel格式,这是我不想要的。现在我已经尝试坚持使用ReplaceAll的特定格式但是没有用,但坦率地说我更喜欢目标格式。有人可以帮忙吗?:
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "What"
.Replacement.Text = "^c"
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = True
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute
Selection.PasteAndFormat (wdFormatPlainText)
答案
最简单的方法是在执行代码之前定义范围对象,例如:
set rng = Selection.FormattedText
然后在执行ReplaceAll后,选择范围并应用您想要的任何样式,例如:
rng.Select
Selection.Style = ActiveDocument.Styles("Normal")
以上是关于在查找/替换中使用ReplaceAll,但删除源格式的主要内容,如果未能解决你的问题,请参考以下文章
使用String replaceAll在某些字符前面时如何不替换
java 替换文本中的所有指定的字符串,比如#*替换为sq, #**替换为we, 我使用了replaceAll进行的替换