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

问题描述 投票:0回答:1

我需要一些帮助。我有一些代码从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)
vba ms-word word-vba
1个回答
0
投票

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

set rng = Selection.FormattedText

然后在执行ReplaceAll后,选择范围并应用您想要的任何样式,例如:

rng.Select
Selection.Style = ActiveDocument.Styles("Normal")
© www.soinside.com 2019 - 2024. All rights reserved.