Создание сценария VBA в MS-Word 2010 для замены нескольких разрывов строк запятыми (,)

1. Я пытаюсь создать скрипт VBA для проверки качества документов.
2. Если после слова есть пробелы или разрывы строк, все должны быть заменены запятой (,).то есть: я не хочу, чтобы пробелы присутствовали перед запятой (,)
Пример:

Before running VBA script
abc[пробел]
[Разрыв строки]
,

After running VBA script
abc ,

Desired Result which I am expecting
азбука,

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

    Sub Replace1()
    '
    ' Replace1 Macro
    '
    '
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
    .Text = "^p,"
    .Replacement.Text = ","
    .Forward = True
    .Wrap = wdFindContinue
    .Format = False
    .MatchCase = False
    .MatchWholeWord = False
    .MatchWildcards = False
    .MatchSoundsLike = False
    .MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub

1 ответ

Решение

Изменить вы найдете текст так:

.Text = "[ ^13]{1,},"

и установите подстановочные знаки в true:

.MatchWildcards = True

Также убедитесь, что курсор начинается в начале документа. Вы можете сделать это, добавив это до начала Find в вашем VBA:

Selection.HomeKey Unit:=wdStory

Объяснение:[ ^13] соответствует пробелу ИЛИ маркеру абзаца (символ ^13). {1,} ищет одно или несколько повторений и, в отличие от @Жадный.

Другие вопросы по тегам