【问题标题】:Word VBA - format and re-link footnotes and endnotes in hyperlinksWord VBA - 格式化和重新链接超链接中的脚注和尾注
【发布时间】:2021-07-02 15:32:17
【问题描述】:

我需要在我编写的宏中找到脚注和尾注标记(在正文中,以格式化它们并重新链接它们)等,以清理从网络导入的文档。

我的宏工作正常,除了,其中部分查找字符串是超链接显示文本,部分不是。

搜索([a-z])([0-9])(在正文中定位尾注标记,因为它们没有格式化为尾注)找不到它们,因为[0-9] 是超链接显示文本而[a-z] 不是。

  1. 我的问题是:如何搜索与[超链接显示文本字符串]相邻的[普通字符串]?
  2. 如果找到,下一步是如何替换超链接显示文本(格式化尾注上标,删除 para 标记)将其保留在超链接中(我可以解决这个问题 - 也许是另一个问题的主题?)

【问题讨论】:

  • 大概,您的超链接仍然指向某个网址,在这种情况下,您应该在查找/替换之前取消链接。您可能还感兴趣:msofficeforums.com/40799-post4.html & msofficeforums.com/110511-post2.html
  • 谢谢你,保罗,取消链接是脚注或尾注标记的完美解决方案(它们是没有上标或括号的纯文本,所以我看不出如何让你的精彩宏工作),但是不适用于其他包含 para 标记的超链接 - 我需要保留这些链接 :) - 任何进一步的想法?维姬
  • 如果我能找到所有只包含数字的超链接并将它们上标,也许你的宏可以工作? (奇怪的是,尾注本身的标记是上标,而正文中的标记是正常样式。
  • 我发布的链接中的宏可能需要事先取消链接。您可以通过 Ctrl-A、F9 取消链接每个字段。或者您可以使用宏来取消链接显示文本为数字的超链接。我很好奇,为什么你会有 [a-z][0-9] 格式的引用。
  • 我无法制定一个仅对仅包含数字的显示文本起作用的宏,(它会捕获也仅显示数字的自动段落编号吗?)...回答您的问题,我的尾注标记确实只包含数字,我很聪明地试图通过搜索未与前面文本分开的数字来找到标记......因此我最初的问题......

标签: vba string replace ms-word hyperlink


【解决方案1】:

当然,您可以简单地将超链接转换为上标数字,然后使用您必须使用的任何其他代码将上标数字替换为尾注。

Sub Demo()
Dim h As Long
With ActiveDocument
  For h = .Hyperlinks.Count To 1 Step -1
    With .Hyperlinks(h)
      If IsNumeric(.TextToDisplay) = True Then
        With .Range
          If .Characters.First.Previous Like "[a-z]" Then
            .Fields.Unlink
            .Font.Reset
            .Font.Superscript = True
          End If
        End With
      End If
    End With
  Next
End With
End Sub

根据您的操作,您可以简单地将尾注代码插入到内部 If ... End If 构造中来代替字体操作。

【讨论】:

  • 非常感谢为尾注提供的替代解决方案!您是否能够帮助回答我仍然需要的问题,以查找重复的段落和其他清理问题? (我打算重新命名这个问题并为我的原始问题打开一个单独的问题,但由于某种原因,我被阻止发布 - “达到问题限制”,尽管这是我几个月来发布的唯一问题. :(
  • «您能否帮助回答我仍然需要的问题,以查找重复的段落和其他清理问题?»你真的应该为此启动一个单独的线程。重复的段落中断可以通过一个相当简单的查找/替换来清除。另见:msofficeforums.com/word/…
  • «可以通过相当简单的查找/替换来清除重复的段落中断» ^13^13 如果其中一个是超链接显示文本而另一个不是,则未找到。那是我的问题。您能否协助查找/替换代码以找到它们?尽管标题和末尾的问题很清楚,但我已经重新关注了问题中的示例。
  • «非常感谢为尾注提供这种替代解决方案!» - 我认为您的回答很有帮助,但它没有按照标题回答我的问题。
  • « 它没有按照标题回答我的问题» 简单的原因是 Find 不能那样工作。我在此线程的第一条评论中解释了取消链接的必要性。
猜你喜欢
  • 2018-02-18
  • 1970-01-01
  • 1970-01-01
  • 2013-07-24
  • 1970-01-01
  • 1970-01-01
  • 2016-06-14
  • 2021-06-09
  • 1970-01-01
相关资源
最近更新 更多