在VBA for Word中,如何对超链接地址使用“查找”方法?

在VBA for Word中,如何对超链接地址使用“查找”方法?,vba,hyperlink,ms-word,Vba,Hyperlink,Ms Word,我在一个文档中有700多个链接,我想使用.Find方法用某个简单的正则表达式扫描超链接地址。不幸的是,我尝试的一切都将查找限制为显示的文本,而不是实际的超链接地址 任何帮助都将不胜感激。 这是一段代码片段,表示我现在拥有的内容: Set rng = .Hyperlinks(i).Range Set fnd = rng.Find (不幸的是,第一行中设置的范围是显示的文本,而不是超链接地址文本。) 谢谢。您可以设置字段代码使链接可见: ActiveWindow.View.ShowFieldCod

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

任何帮助都将不胜感激。 这是一段代码片段,表示我现在拥有的内容:

Set rng = .Hyperlinks(i).Range
Set fnd = rng.Find
(不幸的是,第一行中设置的范围是显示的文本,而不是超链接地址文本。)


谢谢。

您可以设置
字段代码使链接可见:

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

您可以设置
字段代码
,使链接可见:

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

似乎这应该可以通过迭代
超链接
集合,并使用每个超链接的
地址
属性来实现。您将无法使用
范围。为此查找
方法,但您仍然可以对地址文本使用正则表达式。似乎可以通过在
超链接
集合上迭代,并使用每个超链接的
地址
属性来实现这一点。您将无法使用
范围。为此查找
方法,但仍可以对地址文本使用正则表达式。