我想要 Office Word 中的一个宏,它将页面底部的脚注部分的所有脚注编号上标。
注意:我想要上标的是页面底部的脚注编号,而不是正文中的脚注编号。见下图。
这篇文章提供了一个看似关键的提示。但它有点偏离主题。遗憾的是,我无法通过逆向工程来实现这一点,人工智能也做不到。以下是用户 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 非常接近。下面是他们的宏,供您参考。但两者都失败了,因为它们在底部上标了脚注文本,而不是数字本身。然而,这些人工智能设法编写了宏,正确地在正文中上标了脚注。也许页面底部的脚注部分有一些不同的格式,这让它们感到困惑?
聊天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
简单来说:
如果有人弄乱了脚注引用样式,请修复它或使用:
它非常简单: