Я пытаюсь проверить, могу ли я программно перехватить событие сортировки AutoFilter, получить критерии сортировки, а затем применить те же критерии сортировки к AutoFilter на втором листе.
Пока что мне кажется, что мне нужно вызвать событие Worksheet_Calculate (). И это я сделал. Затем я должен проверить, не изменились ли критерии сортировки автофильтра. Если это не так, выйдите из субмарины. Если это так, соберите критерии и прогоните их через отдельную подпрограмму, которая выполняет ту же самую сортировку в автофильтре на отдельном листе.
Общая идея заключается в том, что всякий раз, когда сортируется один из этих двух автофильтров, автофильтр на другом листе должен сортироваться точно так же.
Я пробовал сделать что-то вроде этого (мне пришлось добавить формулу 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 даже не обнаруживает никаких свойств AutoFilter. Может ли кто-нибудь пролить свет на это?