VBA检索超链接目标工作表?

VBA检索超链接目标工作表?,vba,excel,hyperlink,excel-2013,Vba,Excel,Hyperlink,Excel 2013,我正在尝试从单元格中的超链接检索图纸引用位置 以下内容似乎不起作用,因为test不会返回任何内容,即使G8指向工作表:KO位于单元格A19 test = Range("G8").Hyperlinks(3).Address 现在,如果我运行以下命令: For Each hl In Sheets("LIST").Hyperlinks MsgBox "Range " & hl.Range.Address & " addr " & _ hl.Ad

我正在尝试从单元格中的超链接检索图纸引用位置

以下内容似乎不起作用,因为
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循环

不管怎样,我在stackoverflow、google、microsofts的“超链接”文档中都找不到一种获取工作表名称的方法

参见下面的示例说明:
子地址是您想要的:

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

更快的方法是:
r=Split(范围(“G8”)。超链接(1)。子地址“!”)(0)
?@Ryflex这只是获取工作表名称的另一种方法。但是可以从中提取所需信息的
子地址解决了上述问题。@Ryflex-如果使用拆分,则当工作表名称有空格时,需要考虑单引号:例如
“Shee t1”!A1