Удалить определенное количество текста, пока не найдет открытый абзац - PullRequest
0 голосов
/ 13 февраля 2012

Я хочу создать макрос, который позволит мне удалять определенное количество текста, пока он не найдет открытый абзац.Например:

gateways (...)
ABC
DEF
GHJ
IKL

Other

Я хочу удалить, выполнив поиск по слову «gateways», а затем удаляю весь текст, пока не найдет строку перед «Other».Проблема в том, что количество текста до «other» варьируется от документа к документу, и я не могу найти макрос, который позволяет мне делать это без ошибок.

1 Ответ

0 голосов
/ 19 февраля 2012

Удалить текст Gateway до пустой строки, оставив только Other

Public Sub DeleteFromTextToEmptyLine()
    Selection.Find.ClearFormatting
    With Selection.Find
        .Text = "gateways"
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    'find text
    If Selection.Find.Execute() Then
        'Selection.Collapse wdCollapseEnd 'remove comment to leave the word gateway intact
        'Turn on Extended select mode
        Selection.ExtendMode = True
        'find two paragraph marks together, i.e. empty line
        With Selection.Find
            .Text = "^p^p"
            .Replacement.Text = ""
            .Forward = True
            .Wrap = wdFindContinue
            .Format = False
            .MatchCase = False
            .MatchWholeWord = False
            .MatchWildcards = False
            .MatchSoundsLike = False
            .MatchAllWordForms = False
        End With
        'if found, delete the selection
        If Selection.Find.Execute() Then Selection.Delete
    End If
End Sub

Если вы хотите оставить слово gateway, удалите комментарий из указанной строки

...