我正在使用下面的代碼將超鏈接從一個單元格復制到一個范圍。
超鏈接已被粘貼并正常作業,
但如果我后來從任何一個粘貼的超鏈接中洗掉了任何超鏈接,那么目標單元格中??的所有超鏈接都將被洗掉!
這個問題發生在我使用 vba(復制、粘貼和洗掉)或僅使用 excel。
我正在使用office 2016。
Sub Hyperlinks_Issue()
Range("R2").Copy Range("N2:N15")
Range("N2").Hyperlinks.Delete
End Sub
uj5u.com熱心網友回復:
問題與Range("R2").Copy Range("N2:N15")將超鏈接附加R2到整個N2:N15. 您可以通過在之后立即插入以下代碼來檢查這一點:
Debug.Print (Range("N2:N15").Hyperlinks.Count)
這將回傳1,這意味著整個范圍只有一個超鏈接(而不是 14 個,如您所料)。如果那么你檢查這個:
Debug.Print (Range("N2").Hyperlinks(1).Range.Address)
你會看到它回傳$N$2:$N$15。因此,當您使用 時Range("N2").Hyperlinks.Delete,您只是洗掉了附加到整個范圍的一個超鏈接。
為避免這種情況,請遍歷目標范圍內的所有單元格,并分別為每個單元格附加超鏈接。例如
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只會洗掉此特定單元格中的超鏈接。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/471474.html
