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

Ada*_*ith 6 excel vba hyperlink excel-vba

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

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

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

Jon*_*ell 6

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

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

在下面的示例中,我要修改的形状是在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
Run Code Online (Sandbox Code Playgroud)