使用单元格值的动态文件地址的HyperLink

时间:2014-09-28 13:40:59

标签: excel vba excel-vba hyperlink

我已经谷歌搜索了一段时间,但无法找到合适的解决方案。

我想让Hyperlink从某个单元格中删除它(部分地址)的地址。即插入超链接时,我希望它引用单元格值而不是绝对字符串,以便可以轻松更改超链接。

随后是次要的:

Sub CreateHyper(ARow As Integer, AColumn As Integer, ASheet As Integer, TargetAdress As String,      HName As String)
Sheets(1).Hyperlinks.Add Anchor:=Sheets(ASheet).Cells(ARow, AColumn), _
Address:="'" & Sheets("DATA").Range("A2").Value & "'" & TargetAdress, TextToDisplay:=HName
End Sub

A2中的单元格值取决于存储excel的位置可能是C:\或X:\ alot_of_folders \ ... \

TargetAdress不是指单元格,而是驱动器上的文件。 ... \ File.pdf

我认为所有其他变量都是自我解释的。

所以" A2"更新所有超链接应该更新以及。

以下有效,但如果A2被更改,目标将不会改变,因为它将是静态的,如何制作"表格(" DATA")。范​​围(" A2& #34;)。重视参考?

Sub CreateHyper(ARow As Integer, AColumn As Integer, ASheet As Integer, TargetAdress As String,      HName As String)
Sheets(1).Hyperlinks.Add Anchor:=Sheets(ASheet).Cells(ARow, AColumn), _
Address:=Sheets("DATA").Range("A2").Value & TargetAdress, TextToDisplay:=HName
End Sub

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

AFAIK,使用Hyperlinks.Add创建超链接永远不会是动态的,因为地址将是创建链接时该单元格的内容。如果该单元格发生更改,则链接将不会更新。您需要重复运行该子服务才能将新的单元格内容用作链接。

不要以这种方式将超链接放入单元格,而是考虑使用超链接工作表函数,该函数从单元格动态地获取链接地址。

Sub CreateHyper(ARow As Integer, AColumn As Integer, ASheet As Integer, TargetAddress As String, HName As String)
Dim TargetCell As Range
Set TargetCell = ThisWorkbook.Sheets(ASheet).Cells(ARow, AColumn)
TargetCell.Formula = "=hyperlink('Data'!A2&""" & TargetAddress & """,""" & HName & """)"
End Sub

请注意,我在变量名中使用了正确的Address拼写。您的原始代码拼写错误,这可能会导致调试时出现混淆。