【发布时间】:2017-10-18 01:47:28
【问题描述】:
我正在尝试将超链接添加到将链接到子例程的名称。当用户单击超链接名称时,将调用子例程。
现在,我可以超链接一个单元格,并且我有一些代码会显示一个消息框,但是当我单击超链接单元格时没有出现任何内容。
"Assign macro to hyperlink" tutorial I'm using
简化代码:
Sub Main()
Call SetHyperlink
End Sub
Sub SetHyperlink()
Range("A6").Select
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:="$A$6", TextToDisplay:="TEST"
End Sub
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
'Check if the Target Address is same as you have given
'In the above example i have taken A4 Cell, so I am
'Comparing this with $A$4
If Target.Range.Address = "$A$6" Then
'Write your all VBA Code, which you want to execute
'Or Call the function or Macro which you have
'written or recorded.
MsgBox "Write your Code here to be executed"
Exit Sub
End If
End Sub
我对 vba 还是很陌生,所以如果很明显,请告诉我其中的原因。提前谢谢!
【问题讨论】:
-
单击单元格时只运行宏可以吗?或者您是否尝试在一个单元格中包含多个此类超链接。
-
我希望在单击超链接单元格“A6”时运行
Worksheet_FollowHyperlinksub -
您确定超链接是在
Worksheet_FollowHyperlink代码所在的同一工作表上创建的吗?还是您将Worksheet_FollowHyperlink代码放在Worksheet模块本身或标准模块中?因为它就像为我写的那样工作:) -
@ScottHoltzman 我不确定,我该如何检查?有多个工作表,所以听起来可能就是这样。
-
@JonathanPorter - 你可以将它放在
ThisWorkbook对象的Workbook_SheetFollowHyperlink模块中。这将要求在任何工作表中单击任何超链接。您可以使用sh变量进一步过滤特定工作表采取的操作。这将始终驻留在工作簿中,并适用于新创建的或现有的工作表。