2014-04-04 61 views
1

我需要有人點擊工作表中的圖形是一個圖片時執行宏。宏觀意圖是顯示更多關於用戶點擊的形狀的信息。 編輯:我還需要在鼠標滾動期間的信息顯示,因此使用超鏈接方法。Excel VBA:WorkSheet_FollowHyperlink沒有被調用Shape對象(msoPicture)

我遵循MSDN中列出的方法,但宏似乎並沒有運行。

我的宏如下:

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink) 
    MsgBox "Source: Target.Range.Address " & Target.Range.Address 
    MsgBox "Source: Target.Range.Value " & Target.Range(1, 1).Value 
    ' Some more macro stuff here 
End Sub 
  • 在點擊圖片我到了片,其中超鏈接目標 是,但宏沒有得到執行。
  • 我在其中一個單元格上(在同一張表格中)創建了一個虛擬超鏈接,如果我單擊該宏,則會執行該宏。
  • 我使用超鏈接方法在圖片形狀上具有翻轉信息。

我完全沒有關於如何去做這件事的想法。幫助將不勝感激。

+0

更新我的答案,根據您最近的編輯和您的意見在我的答案:) –

+0

顯然,我相信不能從超鏈接和鏈接到形狀的宏(至少我找不到一個)翻轉。 –

回答

1

請勿使用該方法。使用Worksheet_SelectionChange而不是Worksheet_FollowHyperlink

所以更改您的代碼

Private Sub Worksheet_SelectionChange(ByVal Target As Range) 
    '~~> Change A1 to the cell which is behind the shape 
    If Not Intersect(Target, Range("A1")) Is Nothing Then 
     '~~> Change this to the relevant sheet 
     With ThisWorkbook.Sheets("Sheet1") 
      .Visible = xlSheetVisible 
      .Activate 
     End With 

     ' 
     '~~> Other Code if required 
     ' 
    End If 
End Sub 

接下來,右擊形狀,然後單擊Hyperlink並以超鏈接形狀後面的一個小區。您也可以使用Insert hyperlink對話框中的ScreenTip按鈕顯示信息。

我們將在上面的代碼中執行表單激活部分,而不是讓Excel執行它。

希望這可以解決您的問題。

+0

謝謝Siddharth,但我沒有遵循這條路線,因爲我想要鼠標滾動,這可能(只)當我有HyperLink(從形狀)。 –

+0

這是因爲'Worksheet_FollowHyperlink'是工作表的事件,而不是Shape。 –