如何编写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
?
3 回答
这应该工作:
这有点令人困惑,因为Range.Address与Hyperlink.Address(这是你的URL)完全不同,声明你的类型会有很大帮助 . 这是将“Option Explicit”放在模块顶部的另一种情况 .
我从评论中理解的是,您已经将列J设置为URL的字符串 . 如果是这样,这个简单的脚本应该完成这项工作(它会将单元格超链接到单元格内指定的地址,如果您愿意,可以通过更改textToDisplay选项来更改单元格文本) . 如果我误解了这个并且字符串在AD列中,只需计算出AD的列号并替换以下行:
剧本:
尝试为每个循环运行如下: