Microsoft Excel дозволяє фільтрувати дані. Це корисна функція, яка може допомогти вам зрозуміти великі обсяги даних. Якщо вам не вистачає технічного ноу-хау, необхідного для створення бази даних, ця функція врятує життя. Фільтри є досить простими і дозволяють включати або виключати дані зі стовпця. Фільтр також поширюється на значення даних у відповідних рядках і застосовується до них. Чого не робить фільтр, так це автоматично оновлюється. Якщо значення у відфільтрованому стовпці змінюється через те, що ви оновили його вручну, або використовується формула, вам доведеться знову застосувати фільтри. Простий фрагмент коду дозволяє оновлювати відфільтровані стовпці на льоту.
Щоб використовувати код, вам потрібно буде ввімкнути макроси та зберегти файл Excel як файл із підтримкою макросів, .XLSM. Щоб зберегти файл як файл із підтримкою макросів, перейдіть у меню «Файл» > «Зберегти як» і виберіть «Книга з підтримкою макросів Excel» у діалоговому вікні «Зберегти як».
Далі виберіть аркуш, до якого ви застосували фільтри. Клацніть правою кнопкою миші та виберіть у контекстному меню «Переглянути код».
Відкриється вікно Microsoft Visual Basic з поточним аркушем Excel. Вставте наступний код у вікно коду.
Private Sub Worksheet_Change(ByVal Target As Range) If Me.FilterMode = True Then With Application .EnableEvents = False .ScreenUpdating = False End With With ActiveWorkbook .CustomViews.Add ViewName:="Mine", RowColSettings:=True Me.AutoFilterMode = False .CustomViews("Mine").Show .CustomViews("Mine").Delete End With With Application .EnableEvents = True .ScreenUpdating = True End With End If End Sub
Збережіть файл. Якщо ви не зберегли файл як книгу з підтримкою макросів Excel, вам буде запропоновано зробити це знову. Цей файл, який ви збережете, буде збережено копією і не буде замінювати поточний файл.
Після додавання коду ви можете оновити будь-яку клітинку у відфільтрованому стовпці, і він автоматично оновить відфільтровані дані відповідно до умов, які ви встановили. Цей код був написаний користувачем Stack Exchange Соріном.