在MS Word中,您可以创建指向"放置在此文档中的超链接"以便链接将您带到同一个Word文件中的其他位置。但是,如果您更改标题或移动这些链接,有时会破坏。我想写一些VBA来检查链接是否断开。
使用VBA,您可以使用以下代码列出每个超链接子地址:
Sub CheckLinks()
Set doc = ActiveDocument
Dim i
For i = 1 To doc.Hyperlinks.Count
Debug.Print doc.Hyperlinks(i).SubAddress
Next
End Sub
上面代码的输出也与超链接的字段代码中显示的内容相匹配。
但是,我并不清楚如何验证SubAddress是否正确。例如,程序输出的摘录显示:
_Find_a_Staff_1
_Edit_Organization_Settings_2
_Set_the_Staff
_Find_a_Staff_1
但是没有明显的方法可以说出"正确的"后缀应该是给定的标题。有关如何检查这些是否有效的任何想法?
有没有办法获取文档标题的所有有效子地址列表?
答案 0 :(得分:0)
下面的代码将列出文档中不存在相应书签的超链接。 (请注意,它只检测丢失的链接,而不是检测到错误位置的链接。)
Sub CheckLinks()
Dim doc As Document
Set doc = ActiveDocument
Dim i, j
Dim found As Boolean
For i = 1 To doc.Hyperlinks.Count
found = False
For j = 1 To doc.Bookmarks.Count
If doc.Range.Bookmarks(j).Name = doc.Hyperlinks(i).SubAddress Then
found = True
End If
Next
If found = False Then
Debug.Print doc.Hyperlinks(i).SubAddress
End If
Next
End Sub