2017-10-18 60 views
-1

我有一個excel電子表格,每列有一個形狀,隨着時間的推移將更多形狀添加到列中。問題是,一些形狀有超鏈接,而其他形狀沒有。我想編寫一個vba宏來遍歷列中的每個形狀,並刪除當前形狀的超鏈接(如果有)。我試圖錄制一個宏,我手動刪除一個形狀的超鏈接,然後在全局應用這個動作。但是,工作表上有其他形狀的超鏈接,因此我的宏只能應用於此特定列。有任何想法嗎?Excel VBA宏刪除每個形狀的超鏈接

+0

發佈您的代碼。你到目前爲止做了什麼。 –

回答

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 
+0

完美的作品。非常感謝! –

0

嘗試使用以下過程一次刪除所有超鏈接。

Sub DeleteHyperLinks() 
    Sheet1.Hyperlinks.Delete 
End Sub