2015-02-18 54 views
2

我想檢索這是在細胞VBA檢索超鏈接目標工作表?

下似乎並不如test工作不返回任何一個超級鏈接紙張基準位置,即使G8分表:KO在細胞A19

test = Range("G8").Hyperlinks(3).Address 

現在,如果我運行以下命令:

For Each hl In Sheets("LIST").Hyperlinks 
    MsgBox "Range " & hl.Range.Address & " addr " & _ 
      hl.Address & " text " & hl.TextToDisplay 
Next hl 

通過與網絡連接它的週期找到正確的地址,但我似乎無法弄清楚如何檢測它指向的工作表。此外,這個循環有點混亂,因爲一旦在這種情況下找到了第一個也是唯一的超鏈接,它就會出錯。 G8並不總是具體的。我想我可以只是拋出一個if語句並提前退出for循環。無論是

,我找不到任何地方計算器,谷歌,微軟的「超鏈接」文件的方式來獲取工作表名稱。

請參見下面的示例圖: sample pic

回答

4

SubAddress是你想要什麼:

Sub Test() 

    Dim hl As Hyperlink, r As Range 

    Set hl = ActiveSheet.Hyperlinks(1) 

    Set r = Application.Evaluate(hl.SubAddress) 

    Debug.Print "Sheet: '" & r.Parent.Name & "'", "Range:" & r.Address() 

End Sub 
+0

比較快的方式我可以這樣做:'R =斯普利特(範圍( 「G8」)超鏈接(1 ).SubAddress,「!」)(0)'? – Ryflex 2015-02-18 01:43:51

+0

@Ryflex這是獲取表單名稱的另一種方法。但是您可以從中獲取所需信息的「SubAddress」解決了上述問題。 – L42 2015-02-18 02:21:59

+0

@Ryflex - 如果您使用Split,那麼當工作表名稱中有空格時,您需要考慮單引號。 ''Shee t1'!A1' – 2015-02-18 07:18:45