Как добавить текст в пустые маркеры в Microsoft Word с VBA? - PullRequest
0 голосов
/ 29 марта 2019

Я пытаюсь добавить текст в пустые отформатированные маркеры в текстовом документе, однако я не могу найти какой-либо успешный способ сделать это. Я не очень хорош в VBA, я просто использую его для автоматизации повторного получения отчетов.

Это формат сабвуферов VBA, который я использовал для поиска и замены текста, я просто не могу найти способ настроить добавление к пунктам маркированного списка:

Private Sub FixedReplacements()
Dim Rng As Range
Dim SearchString As String
Dim EndString As String
Dim Id As String
Dim Link As String

Set Rng = ActiveDocument.Range

    Rng.Find.ClearFormatting
    Rng.Find.Replacement.ClearFormatting
    With Rng.Find
        .Text = ""
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Rng.Find.Execute Replace:=wdReplaceAll

End Sub

Цель, которую я поставил для пустых маркеров, состоит в том, чтобы они отображали что-то вроде «Никакой дополнительной информации». << Просто пример. </p>

1 Ответ

0 голосов
/ 29 марта 2019

Как это можно сделать, очень сильно зависит от того, как были вставлены пули.Самого способа поиска пули нет.В комментарии упоминается

Точки маркера - это отформатированные маркеры, найденные прямо вне слова.

В этом случае настройкой по умолчанию будет форматирование абзацев с помощью List Paragraph стиль.Если это так, то здесь Find может искать абзацы, используя этот стиль.Код Find в вопросе будет выглядеть следующим образом.(Обратите внимание также на изменения в свойствах Format и Wrap.)

With Rng.Find
    .Text = "^p"
    .Replacement.Text = "No further information.^p"
    .Forward = True
    .Style = "List Paragraph"
    .Wrap = wdFindStop
    .Format = True
    .MatchCase = False
    .MatchWholeWord = False
    .MatchWildcards = False
    .MatchSoundsLike = False
    .MatchAllWordForms = False
End With

Если для применения маркеров использовался другой стиль, тогда можно найти это имя стиля.Помните, что имена стилей чувствительны к регистру .

В разделе «Файл / Параметры / Дополнительно», «Параметры редактирования» есть опция: «Использовать обычный стиль для маркированных или нумерованных списков».Если это было активировано, то все становится очень сложно.Лучшее, что вы можете сделать, это попытаться соответствовать применяемому форматированию абзаца (отступы и т. Д.).

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