为什么 excel 删除所有粘贴的超链接,如果我后来从其中任何一个删除了任何超链接?

Why excel delete all the pasted hyperlinks, if I later removed any hyperlink from any one of them?

我正在使用以下代码将超链接从一个单元格复制到一个范围。
超链接已粘贴并正常工作,
但是如果我后来从任何一个粘贴的超链接中删除了任何超链接,那么来自目标单元格的所有超链接都会被删除!!
这个问题发生在我使用 vba(复制、粘贴和删除)或仅使用 excel。
我用的是office 2016.

Sub Hyperlinks_Issue()
 
    Range("R2").Copy Range("N2:N15")
 
    Range("N2").Hyperlinks.Delete
 
End Sub

问题与 Range("R2").Copy Range("N2:N15")R2 中的超链接附加到 N2:N15 的整个范围有关。您可以通过立即插入以下代码来检查这一点:

Debug.Print (Range("N2:N15").Hyperlinks.Count)

这 returns 1,意味着整个范围只有一个超链接(而不是您可能期望的 14 个)。如果你检查这个:

Debug.Print (Range("N2").Hyperlinks(1).Range.Address)

你会看到它 returns $N:$N。因此,当您使用 Range("N2").Hyperlinks.Delete 时,您只是删除了附加到整个范围的 one 超链接。

为避免这种情况,请遍历目标范围内的所有单元格,并分别为每个单元格附加超链接。例如

Sub copyHyperlinks()

For Each myCell In Range("N2:N15")

    Range("R2").Copy myCell

Next myCell

Debug.Print (Range("N2:N15").Hyperlinks.Count) '= 14

End Sub

现在,Range("N2").Hyperlinks.Delete 只会删除此特定单元格中的超链接。