带有使用单元格值的dynamic文件地址的HyperLink

我一直在使用Google这一段时间,但无法find一个合适的解决scheme。

我想有一个超链接,它从某个单元格中获取它的(部分地址)地址。 也就是说,当插入一个超链接,我希望它引用一个单元格的值,而不是一个绝对string,所以超链接可以很容易地改变。

接下来是这个子做的:

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

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

所以当“A2”更新时,所有的超链接都应该更新。

下面的工作,但如果A2被改变,目标不会改变,因为它将是一个静态的,如何使“表格(”数据“)。范围(”A2“)。

 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 

有什么build议么?

AFAIK,使用Hyperlinks.Add创build一个超链接Hyperlinks.Add永远不会是dynamic的,因为地址将是链接创build时该单元格的内容。 如果该单元格更改,链接将不会更新。 您需要重复运行该子文件才能使用新的单元格内容作为链接。

不要像这样将超链接放到单元格中,而是考虑使用超链接工作表函数,并从单元格中dynamic获取链接地址。

 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 

请注意,我在variables名称中使用了地址的正确拼写。 您的原始代码拼写错误,这可能会导致debugging时出现混乱。