Я пытаюсь выяснить, могу ли я программно перехватить событие сортировки автофильтра, получить критерии сортировки и затем применить те же критерии сортировки к автофильтру во втором листе.
Пока мне кажется, что я должен вызвать событие Worksheet_Calculate (). И это я сделал. Затем я должен проверить, были ли изменены критерии сортировки автофильтра. Если это не так, выйдите из sub. Если это так, соберите критерии и проведите их через отдельную подпрограмму, которая выполняет ту же самую сортировку на автофильтре в отдельной рабочей таблице.
Общая идея заключается в том, что всякий раз, когда один из этих двух автофильтров сортируется, автофильтр на другом листе должен сортироваться точно так же.
Я пытался сделать что-то подобное (мне пришлось добавить формулу Excel, чтобы фактически вызвать триггер вычисления события):
Private Sub Worksheet_Calculate()
Dim wbBook as Workbook
Dim wsSheet as Worksheet
Dim rnData as Range
Set wbBook = ThisWorkbook
Set wsSheet = wbBook.Worksheets("Sheet1")
With wsSheet
Set dnData = .UsedRange
End With
End Sub
Но мне не удается собрать критерии, я пробовал несколько вещей, и добавление часов в dnData даже не обнаруживает никакого свойства автофильтра. Может кто-нибудь пролить свет на это?