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解決方案時遇到麻煩。我只是想確保沒有更簡單的解決方案。 –