Используйте ReplaceAll для поиска / замены, но удалите исходный формат - PullRequest
0 голосов
/ 26 сентября 2018

Мне нужна помощь.У меня есть некоторый код, который копирует отфильтрованный диапазон из листа 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 голосов
/ 17 января 2019

Простейшим способом было бы определить объект диапазона перед выполнением вашего кода, например:

set rng = Selection.FormattedText

Затем после выполнения ReplaceAll выберите диапазон и примените любой стиль, который вы хотите, например:

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