我想要 Office Word 中的一个宏,它可以在页面底部脚注部分的所有脚注数字上标上标。
注意:这是我想要上标的页面bottom处的脚注编号,而不是正文中的脚注编号。参见下图。
这篇文章提供了一个看似关键的提示。但这有点偏离主题。可悲的是,我无法对其进行逆向工程以使其为我工作,人工智能也无法做到这一点。以下是来自用户 Timothy Rylatt 的有用信息:
Word 文档由许多故事范围构成,其中之一是脚注故事。要使脚注编号仅在脚注中成为非上标,您可以在脚注故事中执行查找和替换,如下所示。
Sub ApplyChicagoStyle()
With ActiveDocument.StoryRanges(wdFootnotesStory).Find
.Style = ActiveDocument.Styles(wdStyleFootnoteReference)
.Replacement.Style = ActiveDocument.Styles(wdStyleFootnoteText)
.Replacement.Font.Superscript = False
.Format = True
.Execute Replace:=wdReplaceAll
End With
End Sub
错误格式说明:
正文及文内脚注编号
1 [非上标,底部脚注编号] 脚注底部文本
ChatGPT 和 CoPilot 非常接近。以下是他们的宏以获取灵感。但两者都失败了,因为他们在底部添加了脚注text,而不是数字本身。然而,这些人工智能设法编写了在正文中正确标注脚注的宏。也许页面底部的脚注部分有一些不同的格式,这导致它们无法正常工作?
聊天GPT:
Sub SuperscriptFootnoteNumbers()
Dim footnote As Footnote
Dim fnRange As Range
' Loop through each footnote in the document
For Each footnote In ActiveDocument.Footnotes
' Get the range of the footnote's number (not the text)
Set fnRange = footnote.Range
' Superscript the first character, which is the footnote number
fnRange.Font.Superscript = True
Next footnote
End Sub
副驾驶:
Sub SuperscriptFootnoteNumbersInText()
Dim footnote As Footnote
Dim rng As Range
Dim i As Integer
For Each footnote In ActiveDocument.Footnotes
Set rng = footnote.Range.Paragraphs(1).Range
i = 1
Do While IsNumeric(Mid(rng.Text, i, 1))
rng.Characters(i).Font.Superscript = True
i = i + 1
Loop
Next footnote
End Sub
很简单:
Sub ApplySuperscriptToFootnoteReference()
With ActiveDocument.StoryRanges(wdFootnotesStory).Find
.Style = ActiveDocument.Styles(wdStyleFootnoteReference)
.Replacement.Font.Superscript = True
.Format = True
.Execute Replace:=wdReplaceAll
End With
End Sub