Найти весь текст с отступом - PullRequest
0 голосов
/ 28 февраля 2019

Я хочу найти весь текст в документе с отступом 8 пробелов.Код ниже должен найти эти строки и выбрать строку для дальнейшей обработки.Однако код находит / выбирает все строки безоговорочно.Что идет не так?

Нужно ли сбрасывать результат поиска после каждого совпадения?Как это сделать?

Sub findAndSelectIntendedlines()
    Dim matched As Boolean
    With ActiveDocument.Content.Find
        .ClearFormatting
        .Forward = True
        .Execute findtext:="^p        ", Forward:=True, Format:=False, Wrap:=wdFindStop
        matched = .Found
     End With
    If matched Then
            Selection.MoveDown Unit:=wdLine, Count:=1
            Selection.Find.Parent.Expand Unit:=wdLine
            Selection.Find.Parent.Copy
            'Debug.Print Selection
    Else
         Debug.Print "not matched"
    End If
End Sub

1 Ответ

0 голосов
/ 28 февраля 2019

Я адаптировал некоторый код, который я использую, чтобы заменить пустые места.Процедура ищет 2 или более пробелов.Я добавил немного кода и прокомментировал несколько строк, чтобы вы могли проверить и проверить, соответствует ли он вашим требованиям.

Sub FindAndReplaceEmptySpaces()
    Dim rng As Word.Range
    Set rng = ActiveDocument.Content
    With rng.Find
        .ClearFormatting
        .Replacement.ClearFormatting
        .Text = " {2,}" 'look for 2 or more
        .Replacement.Text = " " 'replace with 1
        .Forward = True
        .Wrap = Word.WdFindWrap.wdFindStop
        .Format = False
        .MatchWildcards = True
        'The following was added to demo the search
        .Execute
        Do While .found
            rng.MoveEnd Word.WdUnits.wdParagraph, Count:=1
            Debug.Print rng.Text
            rng.Collapse Word.WdCollapseDirection.wdCollapseEnd
            .Execute
        Loop
        'end of demo code
    End With
'The following code is commented out. Remove comments and demo code above
'to return to the automatically removing extra blank spaces
'    rng.Find.Execute Replace:=Word.WdReplace.wdReplaceAll
'    rng.Find.ClearFormatting
'    rng.Find.Replacement.ClearFormatting

End Sub
...