Excel VBA add hyperlink to shape to link to another sheet

Excel VBA add hyperlink to shape to link to another sheet

我有一个宏可以在工作簿的前面创建摘要 sheet。在工作簿中的 sheets 之后创建并标记形状,然后将 hyperlinks 添加到形状以重定向到那些 sheets,但是,当我记录要执行的宏时这个,生成的代码是:

ActiveSheet.Shapes.Range(Array("Rounded Rectangle 1")).Select
ActiveSheet.Hyperlinks.Add Anchor:=Selection.ShapeRange.Item(1), Address:=""

在录制宏时在 excel 中手动创建的 hyperlinks 工作正常,将鼠标悬停在它们上面时,显示文件路径和“- Sheet!A1 " 但他们似乎并没有真正将 link 位置添加到宏的地址部分。有谁知道应该在那个地址部分到 link 到 sheet 的代码?

宏录制器不会录制这种情况下实际发生的情况。您要查找的 属性 是 SubAddressAddress 已在您的代码中正确设置。

在不选择形状的情况下从形状创建超链接
如果可能,您希望避免选择代码中的内容,在本例中确实如此。创建一个形状变量并将其设置为您要修改的形状,然后将超链接添加到形状所在的 sheet。请注意,您还可以设置屏幕提示的文本。

在下面的示例中,我要修改的形状在 Sheet 6 上,超链接指向 Sheet 4 上的范围。

Sub SetHyperlinkOnShape()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("Sheet6")

    Dim hyperLinkedShape As Shape

    Set hyperLinkedShape = ws.Shapes("Rectangle 1")

    ws.Hyperlinks.Add Anchor:=hyperLinkedShape, Address:="", _
        SubAddress:="Sheet4!C4:C8", ScreenTip:="yadda yadda"
End Sub