Создание сценария 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,}
ищет одно или несколько повторений и, в отличие от @
Жадный.