Найти абзац с BackgroundPatternColor, но с любым стилем - PullRequest
0 голосов
/ 21 ноября 2018

Я ищу в документе Word (2016) с функцией VBA, ища абзацы, для которых применен желтый цвет фона.Это хорошо работает, если стиль абзаца - Normal ...

With Selection.Find
    .ClearFormatting
    .ParagraphFormat.Shading.BackgroundPatternColor = wdColorYellow
    .Wrap = wdFindContinue
    .Text = ""
End With

While Selection.Find.Execute
    ' do the thing
Wend

. После запуска я могу открыть диалоговое окно Advanced Find в Word, и это то, что показывает:

Search dialog showing VBA-set formatting

Есть некоторые абзацы с желтым фоновым рисунком, которые не Style = "Normal", и, как это бывает, я могу использовать диалог Формат -> Стиль, чтобы удалить требованиячто стиль это Normal ...

Remove the style requirement Now searches all styles

Если я сейчас вернусь в VBA, я смогуиспользуйте Selection.Find.Execute, и я могу найти пропущенные ранее абзацы.Опрос свойства Selection.Find.Style выявляет значение Normal, как и раньше, за исключением того, что теперь оно работает.

В VBA, похоже, нет никакого способа отменить требование Style? Кто-нибудь знает, как это сделать?

Я попытался установить для Style значение:

  • Ничего
  • ""
  • "(без стиля)"
  • 9999999

Ничего из этого не сработало.Я также попытался установить Find.Format = False, но это тоже не сработало.Я думаю, что странно, что свойство Find.Style в VBA по-прежнему показывает Normal, но если я установлю его на Normal, поиск не сможет найти абзац.

Открыт для любых предложений на данный момент.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...