0
通过删除命名的范围,到指定范围的超链接可能会“断开”。发生这种情况时,单击超链接将显示一条消息“引用无效”。有没有办法自动搜索工作簿来查找这些破碎的超链接?检查Excel工作簿是否存在损坏的超链接
通过删除命名的范围,到指定范围的超链接可能会“断开”。发生这种情况时,单击超链接将显示一条消息“引用无效”。有没有办法自动搜索工作簿来查找这些破碎的超链接?检查Excel工作簿是否存在损坏的超链接
继@Ron Rosenfeld的建议,我将需要使用VBA,我创建了以下来解决问题。
Public Sub CheckForBrokenLinks()
Dim targetWorkbook As Workbook
Dim searchSheet As Worksheet
Dim checkLink As Hyperlink
Dim testRange As Range
Set targetWorkbook = Application.ActiveWorkbook
For Each searchSheet In targetWorkbook.Worksheets
For Each checkLink In searchSheet.Hyperlinks
If Not checkLink.SubAddress = "" Then
If Not DoesAddressExist(searchSheet, checkLink.SubAddress) Then
Debug.Print "I think the following link is broken:"
Debug.Print " Link name: " & checkLink.Name
Debug.Print " Sheet name: " & searchSheet.Name
Debug.Print " Link target: " & checkLink.SubAddress
If checkLink.Type = 0 Then
Debug.Print " Link range: " & checkLink.Range.address
End If
End If
End If
Next checkLink
Next searchSheet
End Sub
Private Function DoesAddressExist(searchSheet As Worksheet, address As String) As Boolean
Dim testRange As Variant
On Error Resume Next
Set testRange = searchSheet.Evaluate(address)
DoesAddressExist = Err.Number = 0
Err.Clear
On Error GoTo 0
End Function
当引用超链接时,“指定范围”是什么意思?如果你的问题是“能否自动搜索一个不涉及有效地址或目标的超链接”,你可以,但你需要VBA来这样做。 –
是的,的确,这就是我的意思。感谢@Ron Rosenfeld。我不应该在构建VBA解决方案时遇到麻烦。我只是想确保没有更简单的解决方案。 –