Word允许您在文档中建立到外部文档或当前文档中其他位置的链接。 Peter正在寻找一种仅计算文档中内部链接的方法,并且想知道是否有这样做的方法。

您执行此操作的唯一方法是使用宏逐步浏览文档中的每个超链接。幸运的是,这可以通过检查“超链接”集合中的元素来轻松完成。每个超链接对象都有许多可以设置的属性,具体取决于链接的特征。特别重要的是Address和SubAddress属性。

Address属性(顾名思义)是链接的目标地址。通常,这类似于URL(如/),但也可以是可从系统或电子邮件地址访问的驱动器上文件的名称(如mailto:[email protected])。因为Address属性可以有多种用途,所以您不能专门检查是否存在诸如“ http”前缀之类的区分字符。如果缺少前缀,则该链接仍可以位于当前文档的外部,因为它可能引用了系统上的其他文件。

但是,在某些情况下,如果链接指向当前文档中的书签,则“地址”字段为空白。如果为空,则SubAddress属性将设置为链接中引用的书签的名称。当然,如果链接指向其他文档中的特定书签,则将同时设置Address和SubAddress属性。

要了解与每个超链接对象一起存储的信息,请查看以下简短宏。它逐步浏览每个链接并显示有关每个链接的信息。

Sub LinkInfo()

Dim h As Hyperlink     Dim sTemp As String

For Each h In ActiveDocument.Hyperlinks         sTemp = h.TextToDisplay & vbCrLf         sTemp = sTemp & h.Address & vbCrLf         sTemp = sTemp & h.SubAddress         MsgBox sTemp     Next h End Sub

因此,确定文档中内部链接的数量(换句话说,指向当前文档中书签的链接)的最简单方法是检查每个超链接对象的Address属性。

如果该属性为空,则可以安全地假定该链接是内部的。

Sub InternalLinks1()

Dim h As Hyperlink     Dim lInternal As Long

lInternal = 0     If ActiveDocument.Hyperlinks.Count > 0 Then         For Each h In ActiveDocument.Hyperlinks             If h.Address = "" Then lInternal = lInternal + 1         Next hp     End If     MsgBox lInternal & " hyperlinks are internal" _       & " out of a total of " & ActiveDocument.Hyperlinks.Count End Sub

如果您希望将内部链接的实际目标列表放在一起,则可以轻松地在宏中添加一个宏,以便在For Each循环中的每个SubAddress属性中查找并将其添加到您在末尾显示的内容中宏。

当然,超链接不限于仅出现在文档正文中。您还可以在其他文档元素中具有超链接,例如页眉,页脚,尾注和文本框。宏的以下变体计算了它在文档中任何这些区域(StoryRanges)中找到的所有链接。

Sub InternalLinks2()

Dim h As Hyperlink     Dim lInternal As Long     Dim lTotal As Long     Dim aStory As Range

lTotal = 0     lInternal = 0     For Each aStory In ActiveDocument.StoryRanges         lTotal = lTotal + aStory.Hyperlinks.Count         If aStory.Hyperlinks.Count > 0 Then             For Each h In aStory.Hyperlinks                 If h.Address = "" Then lInternal = lInternal + 1             Next h         End If     Next aStory     MsgBox lInternal & " hyperlinks are internal" _       & " out of a total of " & lTotal End Sub

注意:

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

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

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