2017-10-17 49 views
0

我正在尝试将超链接添加到将链接到子例程的名称。当用户点击超链接名称时,子程序将被调用。向超链接添加子例程无法正常工作

现在,我可以超链接一个单元格,并且我有一些代码可以显示一个消息框,但是当我单击超链接单元格时,没有任何内容出现。

"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因此,如果这件事情很明显,请让我知道的理由也是如此。先谢谢你!

+0

难道是好的,只是运行宏在单击单元格时?或者你是否想要在单元中有多个这样的超链接。 –

+0

我想单击超链接单元格“A6”时运行'Worksheet_FollowHyperlink'子文件 –

+0

您确定超链接是在Worksheet_FollowHyperlink代码所在的同一张表单上创建的吗?或者你是否将'Worksheet_FollowHyperlink'代码放置在'Worksheet'模块本身或标准模块中?因为它为我写的:) –

回答

2

使用工作簿模块,使用此代码将检查超链接文本,然后根据超链接选择调用宏。

Private Sub Workbook_SheetFollowHyperlink(ByVal Sh As Object, ByVal Target As Hyperlink) 
    Select Case Target.TextToDisplay 
    Case "hi" 
     MsgBox "Hi" 
    Case "Oranges" 
     MsgBox "You selected oranges" 
    Case "Banana" 
     MsgBox "Banana" 
    Case "Trees" 
     MsgBox "Tree" 
    End Select 

End Sub 

enter image description here

+0

我不确定你的意思是乔纳森 – Davesexcel