Щелкнув гиперссылку в excel, чтобы установить автоматический фильтр на другом листе

У меня есть пример таблицы 2 с подробным листом заказа продукта и пример таблицы 2 с указанием названия поставщика и итоговой стоимости. Я хочу знать, возможно ли, что при нажатии на гиперссылку подробные сведения будут отфильтрованы в моем подробном листе заказа продукта под этой таблицей всех заказов поставщика 3. Если кто-нибудь может сделать это для меня, это будет полезно для меня

Таблица 1
Table 1

Таблица 2
Table 2

Таблица 3
Table 3

Также опишите, для чего предназначена таблица 1.

samabcde 10.09.2018 11:12
1
1
3 040
2

Ответы 2

Используйте Worksheet.FollowHyperlink Событие для фильтрации желаемых данных.

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

Вы можете использовать событие 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

это мой файл, вы можете проверить, в чем проблема.

Shoaib Hossain 10.09.2018 11:21

Сравнение моего объяснения и комментариев в моем коде с вашими снимками экрана: это попытается отфильтровать все ваши листы на предмет «Подробности». Вам нужно изменить Target.TextToDisplay на что-то вроде Target.Range.EntireRow.Cells(1,1).Value, чтобы он отфильтровывал значение в столбце A строки с гиперссылкой, которую вы щелкнули.

Chronocidal 10.09.2018 11:38

Другие вопросы по теме