Как я могу использовать макрос Word шрифт - PullRequest
0 голосов
/ 28 ноября 2018

Почему этот код VBA не работает?С этим нормальным текстом.

К сожалению, мой шаблонный поиск также найдет эти экземпляры.Есть ли способ найти текст с различным форматированием в макросе Word?

Sub test()
    With ActiveDocument.Content.Find
        .ClearFormatting
        .Text = "~~~" & "[a-zA-Z]" & "~~~"
        .Replacement.ClearFormatting
        .Replacement.Font.Name = "Arial"
        .Replacement.Text = "^&"
        .Format = True
        .Forward = True
        .Wrap = wdFindStop
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
        .Execute Replace:=wdReplaceAll
    End With
End Sub

1 Ответ

0 голосов
/ 29 ноября 2018

Есть несколько проблем с вашей заменой поиска.

  1. Вы пытаетесь выполнить поиск с подстановочными знаками, не устанавливая для .MatchWildcards значение True.Мы можем сказать это, потому что вы используете подстановочный диапазон [a-xA-Z].

Измените

.MatchWildcards = False

на

.MatchWildcards = True

и вашФункция замены должна работать.

Диапазоны символов в [] должны быть в порядке возрастания значения символа, поэтому должно быть [A-Za-z].Кроме того, чтобы дать вам больше гибкости, вы можете заключить скобки в разные части шаблона поиска и затем обратиться к ним () с помощью \ n, где n - это порядковый номер 1-9.

Таким образом, ваш текст поискабыло бы лучше выразить как "(~~~) ([A-Za-z]) (~~~)", а текст замены - "\ 1 \ 2 \ 3"

Вы указали, что хотите выполнить поиск по формату, но не указали какие-либо конкретные критерии для поиска текста.Это означает, что любой текст, соответствующий вашему шаблону поиска, будет изменен на шрифт Arial.

Если вы хотите изменить текст только в обычном стиле, вам нужно будет указать стиль

Например, добавьте

.style = "Normal"

Попробуйте изменения, предложенные выше, и дайте нам знать, как вы ладите.

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