我有一个包含多个超链接的电子表格,其中一些超链接来自形状。我试图遍历它们,看看它们中的每一个指向哪个以便稍后删除其中一些。对于单元格中包含的超链接,以下循环有效:
Sub a()
Dim ws As Worksheet, hl As Hyperlink, o As Shape
For Each ws In Worksheets
For Each hl In ws.Hyperlinks
Debug.Print hl.Address
Next
Next
End Sub
但这似乎跳过了源自形状或其他物体的所有超链接。
我有什么办法可以循环使用这些吗?我尝试了类似的东西:
Sub a()
Dim ws As Worksheet, hl As Hyperlink, o As Shape
For Each ws In Worksheets
For Each o In ws.Shapes
For Each hl In o.Hyperlinks
Debug.Print hl.Address
Next
Next
Next
End Sub
但是这会在debug.print
行上给出运行时错误91。谷歌搜索没有给我什么。那么,你们有没有想过如何打印地址?
答案 0 :(得分:3)
一个Shape没有.Hyperlinks
属性,只有一个.Hyperlink
属性,如果没有关联的超链接,你会收到错误,所以你需要一个错误处理程序。例如:
On Error Resume Next
Set hl = o.Hyperlink
On Error GoTo 0
If Not hl Is Nothing Then
Debug.Print hl.Address
set hl = Nothing
End If