如何使用VBA链接到Excel中的另一个工作表?

时间:2016-11-23 15:25:23

标签: excel vba excel-vba

我正在尝试在Excel中生成超链接列表,并将它们动态链接到另一个工作表中的另一个单元格。有人可以解释我需要如何格式化参考?目前,它看起来像这样:

'p2r is one sheet
'sh is another
'Subaddress is currently linking to the correct location, wrong sheet.
    '(It's linking to [p2r]'s cells, not [sh]'s cells)

p2r.Hyperlinks.Add_
    Anchor:=p2r.Cells(p2rIndex, 1), _
    Address:="", _
    SubAddress:=sh.Cells(round2, 2).Address, _
    TextToDisplay:=PrevRow

感谢您的帮助!我见过其他人使用的格式如下:Sheet!A1,但当我尝试类似的东西时:

SubAddress:=sh & "!" & Cells(round2, 2).Address

我没有任何有价值的结果。

1 个答案:

答案 0 :(得分:0)

您可以使用两种修改来使代码正常工作:

  1. 您可以使用

    SubAddress:="'" & Replace(sh.Name, "'", "''") & "'!" & Cells(round2, 2).Address

    为了生成SubAddress:="'Sheet name'!$A$1"形式的内容。

    (处理'的公式中的位是允许它在工作表名称中有空格等时仍可使用。如果你知道不会发生,例如因为你定义了工作表名称,其他任何人都不会更改它们,您可以将其简化为SubAddress:=sh.Name & "!" & Cells(round2, 2).Address


    1. 您可以使用

      SubAddress:=sh.Cells(round2, 2).Address(External:=True)

      会产生SubAddress:="'[Book1.xlsx]Sheet name'!$A$1"

    2. 形式的内容