在查找/替换中使用ReplaceAll,但是删除源格式

时间:2018-09-26 12:10:15

标签: vba ms-word word-vba

我需要一些帮助。我有一些代码可以复制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)

1 个答案:

答案 0 :(得分:0)

最简单的方法是在执行代码之前定义范围对象,例如:

set rng = Selection.FormattedText

然后在执行ReplaceAll之后,选择范围并应用所需的任何样式,例如:

rng.Select
Selection.Style = ActiveDocument.Styles("Normal")