用户定义函数从单元获取超链接地址
我正在尝试使用我自己的用户定义函数来填充单元格的内容。 特别是,我试图使单元格的内容是在同一工作表中的超链接单元格的URL地址。
我不断收到#VALUE!
错误。 我的function如下所示:
Function GetAddress(myCell As Range) As String Dim temp As String temp = myCell.Hyperlinks(1).Address GetAddress = temp End Function
我已经尝试了几个不使用temp的变体,但直接分配GetAddress输出,这仍然不起作用。 如果我返回myCell.Address它给我正确的单元格地址,但一旦我尝试获得超链接地址有问题。 我见过的每个例子都做不到。
有谁知道这可以做到吗?
你的代码工作正常,除了你只需要强制UDF重新计算,否则其结果不会得到更新。 如果你想自动重新计算,你可以使用Application.Volatile
(你可以删除不必要的temp):
Function GetAddress(myCell As Range) As String Application.Volatile GetAddress = myCell.Hyperlinks(1).Address End Function
现在您不必手动强制重新计算。 虽然要小心,多次调用volatile函数可以减慢速度。
手动执行示例:
现在在A1中写一些东西:
现在添加一个链接:
函数没有得到重新计算…迫使它重新计算,例如通过单击单元格,按F2,然后按Enter键: