什么是range.hyperlink(1).address = range.value

时间:2019-07-17 01:26:46

标签: excel vba hyperlink

什么意思

range.hyperlink(1).address = range.value

1 个答案:

答案 0 :(得分:0)

首先是Hyperlinks(复数),然后Range.Hyperlinks…需要指定一个范围地址,例如Range("A1").Hyperlinks…。与Range.Value相同。

所以

Range("A1").Hyperlinks(1).Address = Range("A1").Value

Dim Rng As Range
Set Rng = Range("A1")

Rng.Hyperlinks(1).Address = Rng.Value

那么现在它是做什么的?

它获取指定范围内的第一个超链接,例如Range("A1"),并将该超链接的URL更改为该单元格A1中的值。

复制超链接单元格时要小心

但是要小心,例如在A1中创建超链接并将整个单元格复制到一个范围(一个以上的单元格)A2:A10中,新插入的链接将引用完全相同的超链接对象,因为超链接对象仅重复一次(每个插入的范围),而不重复一次(每个插入的单元格)!因此,在A2:A10中,所有单元格现在都引用相同的超链接对象。

  

即使您在单元格Cells.Hyperlinks.Count中看到10个超链接,也可以通过使用2来检查结果是否显示A1:A10

这意味着如果您随后运行

Range("A2").Hyperlinks(1).Address = Range("A2").Value

不仅A2中的超链接的URL更改,而且A3:A10中的超链接的URL也更改为单元格A2的值,因为它是完全相同的超链接对象(它们共享)。

要在每个单元格A2:A10中获得不同的超链接对象,您需要复制A1并在每个单元格中一个接一个地插入。粘贴到A2然后粘贴A3然后粘贴A4… 这样,每个粘贴的单元格都会创建一个唯一的超链接对象。