Найти текст только стиля "Заголовок 1" (Range.Find to match style) - PullRequest
4 голосов
/ 15 февраля 2012

Я пытаюсь найти в документе какой-либо текст, который отображается только в стилях «Заголовок 1».Пока безрезультатно.

Пример кода:

With ThisDocument.Range.Find
    .Text = "The Heading"
    .Style = "Heading 1" 'Does not work
    .Execute
    If .Found Then Debug.Print "Found"
End With

Просто примечание, оно останавливается на оглавлении.

Редактировать: исправлено неверное выражение «если»

Ответы [ 3 ]

3 голосов
/ 15 февраля 2012

Ваш код выглядит хорошо для меня.Я думаю, что стиль «Заголовок 1» существует в вашей таблице содержания?

Приведенный ниже код должен продолжить поиск и найти все случаи:

Dim blnFound As Boolean

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

    Do
        blnFound = .Execute
        If blnFound Then
            Debug.Print "Found"
        Else
            Exit Do
        End If
    Loop
End With

Надеюсь, это поможет.

1 голос
/ 11 июля 2017

Я думаю, что это не работает, потому что вы должны установить

.format = true

флаг, и вы можете указать стиль с помощью метода .Styles:

With ThisDocument.Range.Find
    .Text = "The Heading"
    .Format = true   <<< -------- Tells Word to look for a special formatting
    .Style = ThisDocument.Styles("Heading 1")

    Do
        blnFound = .Execute
        If blnFound Then
           Debug.Print "Found"
        Else
           Exit Do
        End If
    Loop
End With
1 голос
/ 22 июля 2016

Я нашел этот вопрос в Google, и код в вопросе не работал для меня. Я сделал следующие изменения, чтобы исправить это:

  • Я изменил Selection.Find.Style = "Heading 1" на объект.
  • Я изменил код для получения логического результата поиска с .Execute вместо .Found

Надеюсь, это поможет некоторым другим Googlers.

With ThisDocument.Range.Find
    .Text = "The Heading"
    .Style = ActiveDocument.Styles("Heading 1")

    Dim SearchSuccessful As Boolean
    SearchSuccessful = .Execute

    If SearchSuccessful Then
        ' code
    Else
        ' code
    End If
End With
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...