Jim的Word文档中有很多不是活动超链接的URL。

每个URL均以[lt]和[gt]文本“括起来”。因此,例如,URL可能显示为[lt] link:/ https:-www.tips.net%5Bgt%5D。 Jim想知道宏是否有办法在括号代码之间找到文本,从找到的文本创建超链接,然后删除括号代码。

如果使用“查找和替换”的通配符功能,则搜索此类实例非常容易。您需要做的就是搜索“ [lt]`* [gt]”(不带引号),并确保您指定要进行通配符搜索。棘手的部分在于摆脱括号代码,并使它们之间的内容成为有效的超链接。

要一次性完成所有这些操作,您真的需要使用一个宏,就像吉姆所怀疑的那样。即使这样,宏也不必太复杂。

这是将完成此操作的示例:

Sub AddHyperLinksAndClearBrackets()

Selection.Find.ClearFormatting     With Selection.Find         .Text = "\[lt\]*\[gt\]"

.Forward = True         .Wrap = wdFindContinue         .Format = False         .MatchCase = False         .MatchWholeWord = False         .MatchWildcards = True         .MatchSoundsLike = False         .MatchAllWordForms = False     End With

Selection.Find.Execute     Do While Selection.Find.Found         Selection = Mid(Selection, 5, Len(Selection) - 8)

ActiveDocument.Hyperlinks.Add Anchor:=Selection.Range, _           Address:=Selection, SubAddress:=""

Selection.Find.Execute     Loop End Sub

请注意,只要找到匹配项(在“ Do While循环”中),就有两个命令可以完成大部分工作。第一个是这个:

Selection = Mid(Selection, 5, Len(Selection) - 8)

此命令行将所选内容设置为等于所选内容减去开头和结尾的方括号代码。实际上,它会删除括号代码,而将中间的内容保留下来。这是一个巧妙的小技巧,不需要执行单独的查找和替换操作来摆脱括号代码。

除去括号代码后,执行下一行:

ActiveDocument.Hyperlinks.Add Anchor:=Selection.Range, _           Address:=Selection, SubAddress:=""

此行将其余选择(应为纯文本超链接)转换为活动超链接。

宏简短,甜美,并且运行非常快,无论您的文档中有多少个编码超链接。

注意:

如果您想知道如何使用此页面(或_WordTips_网站上的任何其他页面)上描述的宏,我准备了一个包含有用信息的特殊页面。

_WordTips_是您进行经济有效的Microsoft Word培训的来源。

(Microsoft Word是世界上最流行的文字处理软件。)本技巧(672)适用于Microsoft Word 2007、2010、2013和2016。