1

Тема: Поиск слов с определенным форматом и удаление этого слова с абзацем

Всем здрасти! Прошу помочь с одним важным делом.
Есть 2 вордовских файла: В первом файле, находиться подтемы с текстом (где подтема имеет формат: прописные, жирный) Например:
_________________________________________________________________________
МАКРОС ИЛИ МАКРОКОМАНДА — это программный алгоритм действий, записанный пользователем. Часто макросы применяют для выполнения рутинных действий.
КОМПЬЮТЕРНАЯ ПРОГРАММА  это  последовательность инструкций, предназначенных для исполнения устройством управления вычислительной машины.
_________________________________________________________________________

Во втором, находиться список подтем которые нужно удалить.

Нужно сделать макрос который берет подтемы из второго файла и удаляет эти подтемы из первого файла вместе с абзацем(иногда абзацев 2 или 3, поэтому: надо удалить эту подтему до начала следующей подтемы)

2

Re: Поиск слов с определенным форматом и удаление этого слова с абзацем

Этот макрос нашел в нете. Он работает так: если выделенное слово встречается где нибудь в файле, удаляеть его вместе с абзацем. Может это поможет вам
_________________________________________________________________
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
__________________________________________________________________________