1

Тема: Выделение текста между двух слов

Добрый день.
Данный макрос выделяет область между текстом (и копирует в буфер), но останавливает поиск при первом совпадении. Как я понимаю для выделения во всем документе Нужно добавить Do ... Loop и выход из цикла поиска. Своими силами не получилось.

Sub SelectBetweenText()
    Dim MyRange As Range, rStart&, rEnd&
    Set MyRange = ActiveDocument.Content
    With MyRange
        With .Find
            .ClearFormatting
            .Text = "Слово1"
            .Forward = True
            .Wrap = wdFindStop
            .Format = False
            .MatchCase = False
            .MatchWholeWord = True
            .MatchWildcards = False
            .MatchSoundsLike = False
            .MatchAllWordForms = False
            .Execute
            If .Found Then rStart = MyRange.End: rEnd = rStart
        End With
    End With
    Set MyRange = ActiveDocument.Content
    With MyRange
        With .Find
            .Text = "Слово2"
            .Execute
            If .Found Then rEnd = MyRange.Start
        End With
    End With
    If rEnd > rStart Then
        ActiveDocument.Range(rStart, rEnd).Select
        Selection.Copy
    End If
End Sub

2

Re: Выделение текста между двух слов

Sub BTWtext()
Dim r
Set r = ActiveDocument.Range
With r.Find
    .ClearFormatting
    .Text = "Слово1*Слово2"
    .Forward = True
    .Wrap = wdFindContinue
    .Format = False
    .MatchCase = False
    .MatchWholeWord = False
    .MatchAllWordForms = False
    .MatchSoundsLike = False
    .MatchWildcards = True
    If .Execute Then
    ActiveDocument.Range(r.Start + 6, r.End - 6).Select
       
    Do While Selection.Find.Execute
        Selection.MoveStart wdCharacter, 6
        Selection.MoveEnd wdCharacter, -6
        r = r & Selection.Range.Text
        Selection.Collapse wdCollapseEnd
    Loop
    
    Else
        MsgBox "Текст не найден!", vbExclamation
    End If
End With
End Sub

Попробовал таким макаром, но выделяет только одно совпадение. Помогите с ошибкой...