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 的代码?
宏录制器不会录制这种情况下实际发生的情况。您要查找的 属性 是 SubAddress
。 Address
已在您的代码中正确设置。
在不选择形状的情况下从形状创建超链接
如果可能,您希望避免选择代码中的内容,在本例中确实如此。创建一个形状变量并将其设置为您要修改的形状,然后将超链接添加到形状所在的 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
我有一个宏可以在工作簿的前面创建摘要 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 的代码?
宏录制器不会录制这种情况下实际发生的情况。您要查找的 属性 是 SubAddress
。 Address
已在您的代码中正确设置。
在不选择形状的情况下从形状创建超链接
如果可能,您希望避免选择代码中的内容,在本例中确实如此。创建一个形状变量并将其设置为您要修改的形状,然后将超链接添加到形状所在的 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