单击Excel中的超链接以在其他工作表上设置自动过滤器

时间:2018-09-10 08:31:52

标签: excel vba excel-vba hyperlink

我有一个详细的产品订单工作表示例表2,以及一个摘要工作表供应商名称和总值示例表2。 我想知道当我单击超链接详细信息时,是否可以过滤此供应商所有订单示例表3下的详细产品订单。 如果有人可以为我做这对我有帮助

表1
Table 1

表2
Table 2

表3
Table 3

2 个答案:

答案 0 :(得分:1)

您可以使用Worksheet_FollowHyperlink事件来检测何时按下了超链接。指向文档中某个位置的超链接将带有SubAddress,而您单击的文本将是TextToDisplay

以下代码将在您单击工作表的超链接时进行检测,并且-如果该工作表具有自动筛选器-将为您单击的文本筛选自动筛选器的第一列。

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
    Dim wsToFilter As Worksheet
    On Error GoTo SubErr
    If Right(Target.SubAddress, 3) = "!A1" Then 'Hyperlink is to a worksheet within this document
        Set wsToFilter = ThisWorkbook.Worksheets(Replace(Target.SubAddress, "!A1", ""))
        If wsToFilter.AutoFilterMode Then 'Hyperlink has an AutoFilter
            wsToFilter.AutoFilter.ShowAllData 'Remove existing filters
            wsToFilter.AutoFilter.Range.AutoFilter 1, Target.TextToDisplay 'Filter the First column for the text of the hyperlink
        End If
        Set wsToFilter = Nothing
    End If
SubErr:
End Sub

答案 1 :(得分:0)

使用Worksheet.FollowHyperlink Event过滤所需的数据。

Option Explicit

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
    MsgBox Cells(Target.Parent.Row, "A") 'returns the value of column A of the clicked link
    'do your filter stuff here …
End Sub