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

问题描述 投票:1回答:2

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

表格1 Table 1

表2 Table 2

表3 Table 3

excel vba excel-vba hyperlink
2个回答
1
投票

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

当您单击指向工作表的超链接时,以下代码将检测到 - 如果该工作表具有自动过滤器 - 将过滤您单击的文本的AutoFilter的第一列。

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

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
© www.soinside.com 2019 - 2024. All rights reserved.