使用 wdRestartSection NumberingRule 查找尾注编号

Finding Endnote number with wdRestartSection NumberingRule

我正在编写一个 VBA 脚本来将尾注转换为纯文本。当尾注具有连续编号时,这非常简单(将所有尾注复制到文本末尾,使用索引对其编号,并将所有参考文献替换为索引)。

然而,在这种情况下,尾注编号配置为重置每个部分 (NumberingRule=wdRestartSection)。这意味着索引不是数字。我尝试使用 endnote.Reference.Text 获取号码,但这是空的。我没有在对象模型中的任何地方找到每个尾注的实际编号。

是否有此信息?

有没有一种方法可以按部分而不是整个文档遍历尾注,以便我自己跟踪索引?

我目前正在尝试以这种方式获取它:

For Each objEndnote In ActiveDocument.Endnotes
    print(objEndnote.Reference.Text)
Next

这只会打印空字符串。

看起来每个部分都没有编号 - 很奇怪。所以每个section你得自己算:

Option Explicit

Sub getAllEndnotesWithNumbers()

Dim e As Endnote, section As Long, eCounter As Long

For Each e In ThisDocument.Endnotes
    If section <> endnoteSection(e) Then
        section = endnoteSection(e)
        eCounter = 1
        Debug.Print "--- Section " & section & " ----------"
    End If
    
    Debug.Print eCounter, e.Range.Text
    eCounter = eCounter + 1
    
Next
    
End Sub

Private Function endnoteSection(e As Endnote) As Long
endnoteSection = e.Range.Sections(1).Index
End Function