我已经谷歌搜索了一段时间,但无法找到合适的解决方案。
我想让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
有什么建议吗?
答案 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拼写。您的原始代码拼写错误,这可能会导致调试时出现混淆。