Excel VBA:没有为Shape对象调用WorkSheet_FollowHyperlink(msoPicture)

时间:2014-04-04 09:21:50

标签: excel excel-vba excel-2013 vba

当有人点击工作表中的图片时,我需要执行一个宏。宏观意图是显示关于用户点击的形状的更多信息。 编辑:我还需要在鼠标翻转期间显示信息,因此使用超链接方法。

我按照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
  • 点击图片后,我会看到超链接目标所在的工作表 是的,但宏没有被执行。
  • 我在其中一个单元格(在同一张表格中)上创建了一个虚拟超链接,如果我点击该单元格执行该宏。
  • 我使用超链接方法来获取图片形状的翻转信息。

我完全没有关于如何解决这个问题的想法。非常感谢帮助。

1 个答案:

答案 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

接下来,右键单击Shape并单击Hyperlink并超链接到形状后面的单元格。您还可以使用ScreenTip对话框中的Insert hyperlink按钮显示信息。

我们将在上面的代码中执行工作表激活部分,而不是让Excel执行它。

希望这能解决您的问题。