2017-10-17 50 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