单击指向另一个工作表的超链接时运行宏

时间:2017-09-15 11:19:24

标签: excel vba events hyperlink vlookup

我有两个工作表。 Sheet1具有工作订单列表(A列),Sheet2具有根据工作订单购买的物料编号列表。 Sheet1中只有一个工作单条目,但可以有多个材料编号链接到一个工单。

Sheet2看起来像这样;

ColumnA ColumnB

Order1 Material1

Order1 Material2

Order2 Material1

Order3 Material1

我有一个超链接-vlookup组合,一旦在Sheet1中单击工作订单号,它将转到Sheet2中列出材料的相同工单号。

现在,我希望在单击超链接后运行宏,以便过滤Sheet2以仅显示针对该工作单购买的材料。我尝试了以下哪些不起作用。请帮忙!

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink) 
     MsgBox "Run Code"   
End Sub 

1 个答案:

答案 0 :(得分:0)

您遇到的问题是FollowHyperlink未在计算的超链接上触发(即不是静态超链接,而是通过HYPERLINK函数生成)。你可以通过使用SelectionChange事件并测试超链接来解决这个问题。这将需要插入到工作表对象

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim linkAddress As String
    On Error Resume Next
    linkAddress = Target.Hyperlinks(1).SubAddress
    On Error GoTo 0
    If linkAddress = vbNullString Then
        MsgBox "Run Code"
    End If
End Sub

或使用我在评论中标记为重复的解决方案