MS Word: удалить абзац по условию - VBA

Узнай цену своей работы

Формулировка задачи:

Здравствуйте! Помогите с созданием макроса. Есть файл MS Word, в котором содержится несколько тысяч пунктов (по сути отдельных абзацев). Нужен макрос, который будет удалять абзацы, содержащие определённое слово или словосочетание.

Решение задачи: «MS Word: удалить абзац по условию»

textual
Листинг программы
Sub GetOutParagraphsWithUserDefindContent_131222_1411()
dim UDC as string
udc=selection.range.text  'текст, наличие которого грохает абзац
Dim i As Long     'счётчик абзацев
 
With ActiveDocument 'работаем в активном документе Word
    i = .Paragraphs.Count
    '''''''''''''''''''''''''''''''''''''''''это незаконно''''''''
    '.Range.Find.Execute Chr(11), replacewith:=Chr(13), Replace:=wdReplaceAll
    'заменили разрывы строк (код 11) символами абзацев (код 13)
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    'Переберём все абзацы и удалим те, в которых есть данный текст
    Do While i > 0
        If LCase(.Paragraphs(i).Range.Text) Like "*" & LCase(UDC) & "*" Then
             Debug.Print i, .Paragraphs(i).Range.Text
             .Paragraphs(i).Range.Delete 'удалили весь абзац, где был текст константы UDC
             'ненужный абзац удалён
        End If
        i = i - 1
    Loop
 
End With
 
 
End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.75 из 5
Похожие ответы