Чи є спосіб автоматичного сортування? Я автоматично оновлюю клітини і залежно від вхідних значень змінюються рейтинги. Я шукаю спосіб автоматичного розміщення таблиці (подібно до умовного форматування) без натискання кнопки повторного сортування.
Мета полягає в тому, щоб зробити це чисто через вбудовану функцію Excel2013. Я не шукаю рішення, яке включає додаткові комірки, які допомагають сортувати, наприклад, Rank (), ...
Редагувати
Я включаю код макросу, який оновлює книгу в заданому інтервалі, а також включає код в одному аркуші, який повинен оновлювати таблиці на одному аркуші на Worksheet_Calculate. Я отримую помилку під час виконання, не знаючи, що не так?
Public RunWhen As Double
Const frequency = 5
Const cRunWhat = "DoIt" ' the name of the procedure to run
Sub StartTimer()
RunWhen = Now + TimeSerial(0, 0, frequency)
Application.OnTime RunWhen, cRunWhat, Schedule:=True
End Sub
Sub DoIt()
Sheets("RAWDATA").Calculate
ActiveSheet.Calculate
StartTimer ' Reschedule the procedure
End Sub
Sub StopTimer()
On Error Resume Next
Application.OnTime RunWhen, cRunWhat, Schedule:=False
End Sub
і код, який нібито оновлює таблиці
Private Sub Worksheet_Calculate()
With Application
.ScreenUpdating = False
.EnableEvents = False
.DisplayAlerts = False
End With
ActiveSheet.ListObjects("Table2").AutoFilter.ApplyFilter
With ActiveWorkbook.Worksheets("Strategies").ListObjects("Table2").Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
ActiveSheet.ListObjects("Table3").AutoFilter.ApplyFilter
With ActiveWorkbook.Worksheets("Strategies").ListObjects("Table3").Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
With Application
.ScreenUpdating = True
.EnableEvents = True
.DisplayAlerts = True
End With
End Sub
Application.Screenupdating
True / False. Спочатку введіть False, щоб вимкнути відображення будь-яких оновлень, зроблених на робочому аркуші, а потім - True, щоб показати, що було зроблено.
if
умова, так що макрос не буде реагувати кожен раз, коли ви перейдете в іншу комірку.