VBA 检索超链接目标 sheet?
VBA retrieve hyperlink target sheet?
我正在尝试从单元格中的超链接中检索 sheet 参考位置
以下似乎不起作用,因为 test
没有 return 任何东西,即使 G8
指向 Sheet: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
它循环并找到正确的地址,但我似乎无法弄清楚如何检测它指向的 sheet。此外,循环有点混乱,因为在这种情况下,一旦找到第一个也是唯一的超链接,它就会出错。它并不总是特定于 G8。我想我可以只加入一个 if 语句并提前退出 for 循环。
尽管如此,我在 Whosebug 中找不到任何地方,google,微软 "hyperlinks" 提供了一种获取 sheet 名称的方法。
参见下面的示例图:
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
我正在尝试从单元格中的超链接中检索 sheet 参考位置
以下似乎不起作用,因为 test
没有 return 任何东西,即使 G8
指向 Sheet: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
它循环并找到正确的地址,但我似乎无法弄清楚如何检测它指向的 sheet。此外,循环有点混乱,因为在这种情况下,一旦找到第一个也是唯一的超链接,它就会出错。它并不总是特定于 G8。我想我可以只加入一个 if 语句并提前退出 for 循环。
尽管如此,我在 Whosebug 中找不到任何地方,google,微软 "hyperlinks" 提供了一种获取 sheet 名称的方法。
参见下面的示例图:
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