AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / computer / 问题 / 1448007
Accepted
Dov
Dov
Asked: 2019-06-13 10:59:38 +0800 CST2019-06-13 10:59:38 +0800 CST 2019-06-13 10:59:38 +0800 CST

如何在 Word 中用脚注(带上标数字)替换项目符号

  • 772

我有一个 Microsoft Word 文档,其中有 600 多行编号/项目符号行(即段落)。是这样的:

  1. 从前一个沉闷的午夜,当我思考时,虚弱而疲倦,¶
  2. 在许多古怪而奇特的被遗忘的传说中——¶
  3. 当我点点头,几乎要打瞌睡时,突然传来敲击声,¶
  4. 就像有人轻轻敲打——敲打我的房间门。 ¶
  5. “有人来访,”我喃喃自语,“敲我的房门——¶
  6. 只有这个,仅此而已。”¶

资料来源:Edgar Allan Poe的 The Raven ,复制自Project Gutenberg。

......或者它可能被子弹; 我可以很容易地在这两种格式之间切换。

我想将它重新格式化为一篇文章——而不是 600 行——删除数字或项目符号,并在每行(按当前格式)上附加一个脚注(以数字作为上标)。是这样的:

曾几何时,一个沉闷的午夜,当我思考时,虚弱而疲倦,1 在许多被遗忘的古怪和好奇的知识中 - 2 当我点点头,几乎打瞌睡时,突然有敲击声,3 就像有人轻轻敲击 -敲我房间的门。4 “有人来访,”我喃喃自语,“敲我的房门—— 5 只有这个,仅此而已。” 6  ¶

________________________
1
2
3
4
5
6

脚注应该是空白的,以便我稍后编写脚注文本。脚注编号可以按顺序分配,而不考虑段落上的当前编号——但您可以假设段落 按顺序正确编号,没有跳过或重复的编号,或其他特殊情况。

microsoft-word-2010 text-editing
  • 1 1 个回答
  • 286 Views

1 个回答

  • Voted
  1. Best Answer
    Scott - Слава Україні
    2019-07-04T19:55:34+08:002019-07-04T19:55:34+08:00

    插入以下 VBA 例程。然后,单击文件的开头并运行例程。

    Sub Reformat()
        With Selection
            With .Find
                .ClearFormatting
                .MatchWildcards = True
                .Text = "[!^13]^13"
                .Forward = True
                .Wrap = wdFindStop
                .Format = False
                .MatchCase = False
                .MatchWholeWord = False
                .MatchAllWordForms = False
                .MatchSoundsLike = False
            End With
            With .FootnoteOptions
                .Location = wdBottomOfPage
                .NumberingRule = wdRestartContinuous
                .StartingNumber = 1
                .NumberStyle = wdNoteNumberStyleArabic
                .LayoutColumns = 0
            End With
            Do While True
                .Find.Execute
                If Not .Find.Found Then Exit Do
                .MoveLeft Unit:=wdCharacter, Count:=1
                .Range.ListFormat.RemoveNumbers NumberType:=wdNumberParagraph
                .MoveRight Unit:=wdCharacter, Count:=1
                .Footnotes.Add Range:=.Range, Reference:="", Text:=""
                .MoveRight Unit:=wdCharacter, Count:=1
                .TypeText Text:=" "
                .Delete Unit:=wdCharacter, Count:=1
            Loop
        End With
    End Sub
    

    请参阅如何在 MS Office 中添加 VBA? 有关如何执行此操作的一般指导。

    上面的部分代码实际上是由 Microsoft Word 自动生成的。我不完全理解每一行,我怀疑其中一些可以被忽略。以下是我可以解释的一些内容:

    • .MatchWildcards = True和.Text = "[!^13]^13"。这些定义了要在文本中查找的内容。通配符模式为您提供更多功能。在通配符模式下,^13 表示段落分隔符。这通常是通过按 生成的Enter,在 Word 的“显示隐藏字符”模式下,显示为 ¶。

      [! character(s) ]匹配除 和 之间的字符之一以外的任何[!字符]。So [!^13]匹配段落分隔符以外的任何字符。将它们放在一起并[!^13]^13匹配一个以普通字符开头的段落标记——换句话说,一个非空段落的结尾。

    • .Wrap = wdFindStop. 当您到达文档末尾时,停止(不要从头继续)。
    • .StartingNumber = 1. 我想这意味着创建的第一个脚注将是#1,第二个要创建的脚注将是#2,依此类推。(脚注编号不会基于现有的段落编号。)
    • Do While True——运行一个“无限”循环。
    • .Find.Execute— 找到下一个段落标记。
    • If Not .Find.Found Then Exit Do— 如果找不到,则跳出循环。
    • .MoveLeft Unit:=wdCharacter, Count:=1— 移动到段落最后一个字符的左侧。我希望这将是一个标点符号(例如.,,!或?)。
    • .Range.ListFormat.RemoveNumbers NumberType:=wdNumberParagraph — 将段落格式化为正常格式,而不是编号或项目符号。这可能真的只对第一段是必要的,但将它留在循环中并在每次迭代时执行它并没有什么坏处。
    • .MoveRight Unit:=wdCharacter, Count:=1— 移动到段落最后一个字符(可能是标点符号)的右侧。
    • .Footnotes.Add Range:=.Range, Reference:="", Text:="" — 插入一个没有文字的脚注。
    • .MoveRight Unit:=wdCharacter, Count:=1 — 移动到脚注编号的右侧。
    • .TypeText Text:=" "— 在脚注编号后加一个空格。(您可能想将其更改为两个空格。)
    • .Delete Unit:=wdCharacter, Count:=1——删除段落标记。

    我在这个输入上运行了上面的代码:

    前

    得到这个结果:

    后

    注意:执行每个段落需要超过一秒的时间。对于 600 段的文档,需要十多分钟。在运行宏时,屏幕可能会冻结,并且 Word 可能会显示为“无响应”。因此,如果您打开了其他 Word 窗口,您可能想要关闭它们,或者至少保存它们。然后要有耐心。

    • 0

相关问题

  • Notepad++ 在文档中间编辑之间切换

  • Powershell 和正则表达式:Notepad++“保存时备份”文件列表。编辑名称,按上次写入时间排序

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    Windows 照片查看器因为内存不足而无法运行?

    • 5 个回答
  • Marko Smith

    支持结束后如何激活 WindowsXP?

    • 6 个回答
  • Marko Smith

    远程桌面间歇性冻结

    • 7 个回答
  • Marko Smith

    Windows 10 服务称为 AarSvc_70f961。它是什么,我该如何禁用它?

    • 2 个回答
  • Marko Smith

    子网掩码 /32 是什么意思?

    • 6 个回答
  • Marko Smith

    鼠标指针在 Windows 中按下的箭头键上移动?

    • 1 个回答
  • Marko Smith

    VirtualBox 无法以 VERR_NEM_VM_CREATE_FAILED 启动

    • 8 个回答
  • Marko Smith

    应用程序不会出现在 MacBook 的摄像头和麦克风隐私设置中

    • 5 个回答
  • Marko Smith

    ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] 证书验证失败:无法获取本地颁发者证书 (_ssl.c:1056)

    • 4 个回答
  • Marko Smith

    我如何知道 Windows 安装在哪个驱动器上?

    • 6 个回答
  • Martin Hope
    Albin 支持结束后如何激活 WindowsXP? 2019-11-18 03:50:17 +0800 CST
  • Martin Hope
    fixer1234 “HTTPS Everywhere”仍然相关吗? 2019-10-27 18:06:25 +0800 CST
  • Martin Hope
    Kagaratsch Windows 10 删除大量小文件的速度非常慢。有什么办法可以加快速度吗? 2019-09-23 06:05:43 +0800 CST
  • Martin Hope
    andre_ss6 远程桌面间歇性冻结 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney 为什么在 URL 后面加一个点会删除登录信息? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension 鼠标指针在 Windows 中按下的箭头键上移动? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    Inter Sys Ctrl+C 和 Ctrl+V 是如何工作的? 2019-05-15 02:51:21 +0800 CST
  • Martin Hope
    jonsca 我所有的 Firefox 附加组件突然被禁用了,我该如何重新启用它们? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK 是否可以使用文本创建二维码? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 更改 git init 默认分支名称 2019-04-01 06:16:56 +0800 CST

热门标签

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve