Перечислите все экземпляры стиля "Заголовок 1"

Я пытаюсь перечислить каждый экземпляр стиля "Заголовок 1" в моем документе (чтобы в конечном итоге перечислить их в поле со списком на форме).

Следующий код появляется для поиска экземпляров "Заголовок 1", так как в "Немедленном окне" указано правильное количество записей, но .text ничего не возвращает.

Что я делаю неправильно? Благодарю.

Dim blnFound As Boolean
Dim i as Integer

i = 1

With ThisDocument.Range.Find
    .Style = "Heading 1"

    Do
        blnFound = .Execute
        If blnFound Then
            Debug.Print i & " " & .Text
            i = i + 1
        Else
            Exit Do
        End If
    Loop
End With

1 ответ

Решение

Я не верю, что у вашего объекта есть свойство.Text. Выбор имеет свойство.Text. Попробуй это:

Sub FindHeadings()
' October 28, 2014
Dim blnFound As Boolean
Dim i As Integer
i = 1
' Set up the find conditions
Selection.HomeKey Unit:=wdStory
Selection.Find.ClearFormatting
Selection.Find.Style = ActiveDocument.Styles("Heading 1")
With Selection.Find
    .Text = ""
    .Replacement.Text = ""
    .Forward = True
    .Wrap = wdFindContinue
    .Format = True
    .MatchCase = False
    .MatchWholeWord = False
    .MatchWildcards = False
    .MatchSoundsLike = False
    .MatchAllWordForms = False
End With
Selection.Find.Execute
Selection.MoveLeft Unit:=wdCharacter, count:=1

'Repeat while you find the style
blnFound = True
While blnFound
    With Selection.Find
        .Execute
        If .Found = True Then
                Debug.Print i & " " & Selection.Text
                i = i + 1
            ' Move to the next character
            Selection.MoveRight Unit:=wdCharacter, count:=1
        Else
            Debug.Print "Done"
            blnFound = False
        End If
    End With
Wend
End Sub
Другие вопросы по тегам