2014-09-28 32 views
1

我一直在使用Google搜索一段時間,但找不到合適的解決方案。使用單元格值的動態文件地址的超鏈接

我想有超鏈接,它從某個單元格中檢索它的(部分地址)地址。即當插入超鏈接時,我希望它引用單元格值而不是絕對字符串,因此超鏈接可以很容易地更改。

其次是由子:

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被改變,因爲這將是一個靜態的,如何讓「表(」數據「)的目標不會改變。範圍(」 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 

有什麼建議?

+0

那麼,什麼不與你嘗試過的? – bowlturner 2014-09-28 14:03:53

+0

通常情況下,TargetAdress包含整個路徑(因此可行),但現在我想在地址中引用單元格,這是我無法管理的引用位。 A2包括= C:\文件夾1 \ 超鏈接將是:C:\文件夾1 \文件夾2 \ file.pdf 如果我更新A2到:C:\ folder3 \ 如何將超級鏈接現在更新到c:\ folder3 \ folder2 \ file.pdf 如果刪除「'」位,則它將起作用,但它會靜止,並且如果A2更改將不會更改targetaddress。 – Damien 2014-09-28 14:34:37

回答

0

據我所知,有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 

請注意,我在變量名中使用了正確的地址拼寫。您的原始代碼拼寫錯誤,這可能會導致調試時出現混淆。

相關問題