Word VBA Как найти и заменить строку, начинающуюся с "<start>" и заканчивающуюся "<end>"? - PullRequest
1 голос
/ 04 марта 2011

Согласно вопросу, пытаясь заменить диапазон текста в документе Word, который имеет форму

"<start>..........<end>"

переменной длины. Это произойдет только один раз в документе.

Ответы [ 3 ]

7 голосов
/ 04 марта 2011

Вы можете использовать встроенную в Word функцию поиска / замены, например,

Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
   .Text = "\<start\>*\<end\>"
   .Replacement.Text = ""
   .Forward = True
   .Format = False
   .MatchCase = False
   .MatchWholeWord = False
   .MatchWildcards = True
   .MatchSoundsLike = False
   .MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll

Это было найдено в результате простой записи макроса в Word 2007 и просмотра кода VBA.Свойство .Text может использовать подстановочные знаки, такие как * и [A-Z], аналогично регулярным выражениям, указанным в ответе @ Jayantha.Обратная косая черта включена в свойство .Text, поскольку < и > также являются символами подстановки, и обратная косая черта скрывается от них.Найдите слово «заменить» в файлах справки Word.

0 голосов
/ 01 августа 2013

Если вы хотите использовать регулярные выражения, вам нужно перейти к Tools|References и добавить Microsoft VBScript Regular Expressions Libarary

Я думаю, вы можете использовать ^<start>.*<end>$ для своего регулярного выражения.

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

0 голосов
/ 04 марта 2011

Используйте регулярные выражения, попробуйте это:

/start\\.*/end\

Замените / на < и \ на > в приведенном выше регулярном выражении.

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