Определение всех стилей, используемых в концевых сносках - PullRequest
0 голосов
/ 07 августа 2020

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

  • Ссылка на концевую сноску + Текст концевой сноски: для первого абзаца концевой сноски
  • следующие абзацы могут использовать такие стили, как «стихотворение, "" extract "," p, "et c.

Я пытаюсь l oop просмотреть каждую заметку, чтобы определить используемые стили. Если стиль первого абзаца НЕ является «Текст концевой сноски», то стиль будет изменен на этот стиль по умолчанию. Это работает! Стиль абзаца NEXT, если он существует, затем проверяется, чтобы определить его имя стиля. Я хотел бы разрешить ДРУГИЕ стили, кроме «Текст концевой сноски», но похоже, что использование «ActiveDocument.Endnotes (n) .Range.Select» приводит к изменению ВСЕХ стилей на «Текст концевой сноски». Как я могу l oop через каждый стиль абзаца в выбранной концевой сноске?

For n = 1 To EndnoteCount ActiveDocument.Endnotes (n) .Range.Select

            CurrStyName = CurrSty.NameLocal

            If Not (CurrStyName = "Endnote Text") The
                CurrStyName = "Endnote Text"
                ReportString = ReportString + vbNewLine + "The style " & CurrStyName & " is reverting to the default Endnote Text style for endnote#" + Str(n) + "."
            End If

        Set CurrSty2 = Selection.Next.ParagraphStyle

...

1 Ответ

0 голосов
/ 07 августа 2020

ActiveDocument.Endnotes(n).Range содержит все абзацы для концевой сноски, поэтому, когда вы выбираете ее и применяете стиль, вы меняете все абзацы.

Что вам нужно сделать, это l oop через концевые сноски, а затем через абзацы для каждой концевой сноски, без их выбора , примерно так:

  Dim para As Long
  For n = 1 To ActiveDocument.Endnotes.Count
    With ActiveDocument.Endnotes(n).Range
      For para = 1 To .Paragraphs.Count
        CurrStyName = .Paragraphs(para).style.NameLocal
        If Not (CurrStyName = "Endnote Text") Then
          'do whatever you need here
        End If
      Next para
    End With
  Next n
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...