Excel VBA宏删除每个形状的超链接

时间:2017-10-18 19:46:55

标签: excel-vba vba excel

我有一个excel电子表格,其中每列的形状都有一个形状,随着时间的推移会有更多的形状添加到列中。问题是,某些形状具有超链接而其他形状则没有。我想编写一个vba宏来循环遍历列中的每个形状,并删除当前形状的超链接(如果有的话)。我尝试录制宏,手动删除形状的超链接,然后全局应用此操作。但是,工作表上还有其他形状具有超链接,因此我的宏只能应用于此特定列。有任何想法吗?

2 个答案:

答案 0 :(得分:0)

尝试使用以下过程将所有超链接删除一次。

Sub DeleteHyperLinks()
  Sheet1.Hyperlinks.Delete
End Sub

答案 1 :(得分:0)

此示例从A列中的形状中删除超链接,根据需要调整列。

Sub DeleteHyperlink()
Dim shp As Shape
Dim r As Range

        Set r = Columns("A:A")
        For Each shp In ActiveSheet.Shapes
            If Not Intersect(Range(shp.TopLeftCell, shp.BottomRightCell), r) Is Nothing Then
                On Error Resume Next
                If shp.Hyperlink.Address <> "" Then shp.Hyperlink.Delete
            End If
        Next shp

    End Sub