【问题标题】:In VBA for Word, How can I use the Find method on a hyperlink address?在 VBA for Word 中,如何在超链接地址上使用 Find 方法?
【发布时间】:2017-06-11 05:13:22
【问题描述】:

我在一个文档中有 700 多个链接,我想使用 .Find 方法使用某个简单的正则表达式扫描超链接地址。不幸的是,我尝试的一切都将查找限制为显示的文本,而不是实际的超链接地址。

任何帮助将不胜感激。 这是代表我现在拥有的代码 sn-p:

Set rng = .Hyperlinks(i).Range
Set fnd = rng.Find

(第一行设置的范围,不幸的是显示的文本,而不是超链接地址文本。)

谢谢。

【问题讨论】:

  • 似乎应该可以通过迭代Hyperlinks 集合并使用每个超链接的Address 属性来实现。您将无法为此使用 Range.Find 方法,但您仍然可以对地址文本使用正则表达式。

标签: vba hyperlink ms-word


【解决方案1】:

您可以设置FieldCode 以使链接可见:

ActiveWindow.View.ShowFieldCodes = Not ActiveWindow.View.ShowFieldCodes

然后您可以像搜索文本一样搜索链接;这只是我记录的一个例子:

ActiveWindow.View.ShowFieldCodes = Not ActiveWindow.View.ShowFieldCodes
CommandBars("Navigation").Visible = False
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
    .Text = "https://me.you"
    .Replacement.Text = "https://you.me"
    .Forward = True
    .Wrap = wdFindContinue
    .Format = False
    .MatchCase = False
    .MatchWholeWord = False
    .MatchWildcards = False
    .MatchSoundsLike = False
    .MatchAllWordForms = False
End With

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-16
    • 2021-08-07
    • 2016-06-14
    • 2019-03-22
    相关资源
    最近更新 更多