2009-05-06 3 views
1

Может кто-нибудь, пожалуйста, помогите мне с макросом MS Word, который будет искать определенный символ в каждом абзаце всего документа и удалять абзацы, которые НЕ содержат этот символ.MS Word Macro - Удалить абзацы

Я практически ничего не знаю о VBA, но только что получил огромный & громоздкий документ Мне нужно быстро отредактировать.

ответ

2

Вот быстрый макрос, который должен делать то, что вы хотите - используйте с осторожностью и не забудьте сделать резервную копию!

Задайте значение «поиск» как текст, который вы ищете. Это очень грубо и удалит абзац, если ваш текст не появится где-то внутри него.

Sub DeleteParagraphContainingString() 

    Dim search As String 
    search = "delete me" 

    Dim para As Paragraph 
    For Each para In ActiveDocument.Paragraphs 

     Dim txt As String 
     txt = para.Range.Text 

     If Not InStr(LCase(txt), search) Then 
      para.Range.Delete 
     End If 

    Next 

End Sub 

Я пробовал это на Office 2007. Немного страшно, но, похоже, работает!

+1

Запрос на удаление абзацев NOT, содержащих строку (или символ). Измените значение «If InStr (...» на «If Not InStr (...». –

+0

tequila2k, Ken Paul, большое спасибо за вашу помощь. Пробовал макрос сейчас, и он сделал трюк. ну, ну, спасибо. – 2009-05-06 16:44:10

+0

Ах да, спасибо, Кен, я сейчас исправил ответ. –

Смежные вопросы