什么意思
range.hyperlink(1).address = range.value
答案 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
…
这样,每个粘贴的单元格都会创建一个唯一的超链接对象。