【问题标题】:Remove Hyperlinks Preserve Cell Format删除超链接保留单元格格式
【发布时间】:2025-11-26 22:35:01
【问题描述】:

我的工作表中有一些包含插入超链接的单元格。我想删除超链接并将“友好名称”留在单元格中。我可以这样做:

Sub dural()
   Dim h As Hyperlink

   For Each h In ActiveSheet.Hyperlinks
      h.Delete
   Next h
End Sub

这个小子工作。但是,如果我开始:

运行宏,我得到:

单元格的格式被破坏了!有没有办法删除超链接并保留格式??

编辑#1:

检查超链接属性,我得到了这个工作:

Sub dural2()
   Dim h As Hyperlink, addy As String, z As String

   For Each h In ActiveSheet.Hyperlinks
     addy = h.Range.Address
     z = h.Parent
     Range(addy).ClearContents
     Range(addy).Value = z
   Next h
End Sub

【问题讨论】:

标签: vba excel hyperlink


【解决方案1】:

超链接对象具有某些属性,通过反复试验,我确定,对于指向同一工作表上另一个单元格的简单超链接:

  • h.Address = ""
  • h.Range = "CNN"(实际上返回一个 Range,但由于默认属性是 .Value,它的计算结果为“CNN”)
  • h.SubAddress = "Sheet1!C1"

作为 .SubAddress 包含:

文档中与超链接关联的位置

我将您的代码更改为:

Sub dural()
   Dim h As Hyperlink

   For Each h In ActiveSheet.Hyperlinks
      h.SubAddress = ""
   Next h
End Sub

发现超链接不再有效,但您的单元格格式被保留。

【讨论】:

  • 谢谢......我所有的超链接都指向网站............按照你的想法,我得到了我的 EDIT# 1 工作......再次感谢!
  • 对于网站,h.address 包含 URL 和 h.SubAddress = ""。我想涵盖网址和内部工作表地址,您可以同时设置 h.Address = "" 和 h.SubAddress = ""。