我有一个宏,用于在工作簿的前面创建摘要表。在工作簿中的工作表之后创建形状并对其进行标记,然后将超链接添加到形状中以重定向到这些工作表,但是,当我记录宏来执行此操作时,生成的代码是:
ActiveSheet.Shapes.Range(Array("Rounded Rectangle 1")).Select
ActiveSheet.Hyperlinks.Add Anchor:=Selection.ShapeRange.Item(1), Address:=""
在excel中手动创建的超链接在录制宏时工作正常,将鼠标悬停在它们上时,显示文件路径和“-Sheet!A1”,但它们似乎并没有真正将链接位置添加到的地址部分中宏。有人知道该地址部分中链接到工作表的代码吗?
最佳答案
在这种情况下,宏记录器不会记录实际发生的情况。您要查找的属性是SubAddress
。在您的代码中正确设置了Address
。
从形状创建超链接而不选择它
您希望尽可能避免选择代码中的内容,在这种情况下,绝对可以。创建一个形状变量并将其设置为要修改的形状,然后将超链接添加到该形状所在的图纸上。请注意,您还可以设置屏幕提示的文本。
在下面的示例中,我要修改的形状在工作表6上,并超链接到工作表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
关于excel - Excel VBA添加超链接以成形以链接到另一个工作表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31225024/