Paul试图使用Word VBA返回插入点所在的脚注的脚注编号。就他而言,脚注可能包含多个段落。保罗想知道是否有一种方法可以在VBA中确定此脚注编号。

可以通过使用脚注对象的Index属性来确定脚注编号。这是演示此信息如何有用的快速方法:

Sub GetFootnoteNumber()

Dim f As Footnote     Dim sTemp As String

sTemp = "The insertion point is not in a footnote"

For Each f In ActiveDocument.Footnotes         If Selection.InRange(f.Range) Then             sTemp = "The insertion point is in footnote " & f.Index         End If     Next     MsgBox sTemp End Sub

请注意,宏逐步遍历了文档中的每个脚注。如果确定选择(插入点)在特定脚注中,则该脚注的Index属性用于将消息放入sTemp变量。遍历脚注后,sTemp变量将显示在消息框中。

如果您的文档中有很多脚注,则可能不想遍历所有脚注。在这种情况下,可以通过以下方式使用所选内容的Information属性来确定插入点当前是否位于脚注中:

Sub GetFootnoteNum()

Dim J As Integer     Dim sTemp As String

sTemp = "The insertion point is not in a footnote"

If Selection.Information(wdInFootnote) Then         J = Selection.Paragraphs(1).Range.Footnotes(1).Index         sTemp = "The insertion point is in footnote " & J     End If     MsgBox sTemp End Sub

另外,您可以通过扩展您访问的脚注的属性来获取有关特定脚注的其他信息。以下宏不仅返回脚注编号,还返回脚注的编号规则,编号样式和起始编号:

Sub GetFootnoteInfo()

Dim f As Footnote     Dim sTemp As String          sTemp = "The insertion point is not in a footnote"

If Selection.Information(wdInFootnote) Then         Set f = Selection.Paragraphs(1).Range.Footnotes(1)

sTemp = "Footnote number: " & f.Index & vbCr         With f.Range.FootnoteOptions             sTemp = sTemp & "Numbering Rule: " & .NumberingRule & vbCr & _               "Numbering Style: " & .NumberStyle & vbCr & _               "Starting Number: " & .StartingNumber         End With     End If     MsgBox sTemp End Sub

注意:

如果您想知道如何使用此页面(或_WordTips_网站上的任何其他页面)中描述的宏,我准备了一个包含有用信息的特殊页面。

_WordTips_是您进行经济有效的Microsoft Word培训的来源。

(Microsoft Word是世界上最流行的文字处理软件。)本技巧(5906)适用于Microsoft Word 2007、2010、2013、2016、2019和Office 365中的Word。