首页 文章

Excel VBA添加形状的超链接以链接到另一个工作表

提问于
浏览
5

我有一个宏,可以在工作簿的前面创建摘要表 . 在工作簿中的工作表之后创建并标记形状,然后将超链接添加到形状以重定向到这些工作表,但是,当我记录宏来执行此操作时,生成的代码为:

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

在记录宏工作时在excel中手动创建的超链接就好了,当将鼠标悬停在它们上面时,显示文件路径和“ - Sheet!A1”,但它们似乎并没有将链接位置添加到地址部分宏 . 有没有人知道应该在该地址部分链接到工作表的代码?

1 回答

  • 5

    在这种情况下,宏录制器不记录实际发生的情况 . 您要找的 properties 是 SubAddress . Address 已在您的代码中正确设置 .

    Create a hyperlink from a shape without selecting it
    如果可能,您希望避免在代码中选择内容,在这种情况下肯定是 . 创建一个形状变量并将其设置为要修改的形状,然后将超链接添加到形状所在的工作表中 . 请注意,您还可以设置屏幕提示的文本 .

    在下面的示例中,我要修改的形状是在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
    

相关问题