【发布时间】:2014-07-21 23:35:51
【问题描述】:
如何编写 Excel VBA 代码以检索特定单元格中超链接的 url/地址?
我正在处理我的工作簿的 sheet2,它包含大约 300 行。每行在“AD”列都有一个唯一的超链接。我想要做的是循环“J”列中的每个空白单元格,并将其值从空白更改为“AD”列单元格的超链接 URL。我目前正在使用此代码:
do while....
NextToFill = Sheet2.Range("J1").End(xlDown).Offset(1).Address
On Error Resume Next
GetAddress = Sheet2.Range("AD" & Sheet2.Range(NextToFill).Row).Hyperlinks(1).Address
On Error GoTo 0
loop
上面代码的问题是它总是得到第一个超链接的地址,因为代码是.Hyperlinks(1).Address。有没有办法通过范围地址获取超链接地址,比如sheet1.range("AD32").Hyperlinks.Address?
【问题讨论】:
-
Range("A1").Hyperlinks(1).Address将为您提供单元格 A1 中的第一个超链接。sheet1.range("AD32").Hyperlinks(1).Address将为您提供单元格 AD32 中的第一个超链接 -
谢谢 Jzz,但是如果您查看我上面的代码,它应该会更改行,因此 GetAddress 应该会更改,但它始终返回它检测到的第一个链接的超链接地址。我忘了提到这段代码被包裹在一个 do while 循环中。我将编辑帖子。
-
所以基本上你问如何循环行?尝试谷歌。如果还有其他问题,请澄清您的问题。
-
不,我会再试一次。 “J”列中的单元格包含“AD”列单元格中超链接的 URL/地址的文本版本。像单元格“J23”包含单元格“AD23”中超链接的 URL/地址。现在,“J”列中有空白单元格,“AD”列中还没有超链接的文本版本。我正在尝试遍历“J”列中的每个空白单元格,查看它的“AD”列,提取该超链接的 url/地址并将其放置到“J”列中的单元格中。这是我上面的代码。我想知道是否有这样的代码 sheet1.range("AD23").Hyperlinks.Address
-
我的代码基本上是在做一个
Sheet2.Range("AD23").Hyperlinks(1).Address,然后是一个Sheet2.Range("AD24").Hyperlinks(1).Address和一个Sheet2.Range("AD25").Hyperlinks(1).Address,但它们都输出了“AD23”的超链接地址