【问题标题】:HyperLink with Dynamic file-address using cell value具有使用单元格值的动态文件地址的超链接
【发布时间】:2014-11-22 23:51:40
【问题描述】:

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

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

接下来是制作的子:

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 不是单元格,而是驱动器上的文件。 ...\文件.pdf

我认为所有其他变量都是不言自明的。

因此,当“A2”更新时,所有超链接也应该更新。

下面的工作,但是如果A2被改变,目标不会改变,因为它是一个静态的,如何使“Sheets(“DATA”).Range(“A2”).value成为一个参考?

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

有什么建议吗?

【问题讨论】:

  • 那么,您尝试过的方法有什么问题?
  • 通常 TargetAdress 包括整个路径(这样可以工作),但现在我想要地址中的单元格引用,这是我无法管理的引用位。 A2 包括 = c:\folder1\ 超链接将为:c:\folder1\folder2\file.pdf 如果我将 A2 更新为:c:\folder3\ 现在如何将超链接更新为 c:\folder3\folder2\file。 pdf 如果您删除“'”位,则它可以工作,但它会是静态的,并且如果 A2 更改,则不会更改目标地址。

标签: vba excel hyperlink


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2022-10-13
    • 1970-01-01
    • 2021-06-22
    • 2014-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多