
У меня есть электронная таблица, которая использует сервер RTD для обновления цен на акции в режиме реального времени.
У меня к таблице применен фильтр, и я хотел бы автоматически применить его повторно.
Я нашел решение, позволяющее повторно применять фильтр при каждом обновлении данных, но, похоже, оно не работает с данными, обновленными службой RTD.
Private Sub Worksheet_Change(ByVal Target As Range)
ActiveSheet.AutoFilter.ApplyFilter
End Sub
Поэтому мне стало интересно, возможно ли повторно применять фильтр каждые 5 минут.
Решение этой проблемы есть по ссылке ниже, но я не совсем понимаю, как это сделать.
решение1
Собираем вместе ваша ссылка и ссылка от gns100, дает нам следующий макрос VBA. Назовите его любым именем, которое вам нравится, и запустите его один раз, чтобы начать цикл таймера.
Public Sub EventMacro()
ActiveSheet.ShowAllData '<- keeps filter alive but shows all data
ActiveSheet.AutoFilter.ApplyFilter '<- apply the filter
alertTime = Now + TimeValue("00:05:00") '<- time = now + 5 minutes
Application.OnTime alertTime, "EventMacro" '<- set timer
End Sub
(Я не тестировал этот макрос.)