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

ИИ для рефератов и докладов


  • Экспорт Word по ГОСТу
  • Минимум 80% уникальности текста
  • Поиск релевантных источников в интернете
  • Готовый документ за 2 минуты

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

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