Я пытаюсь реализовать код VBA, который скрывает столбцы, которые являются «ненужными» для выбранного фильтра.
Я использую слайсеры, чтобы упростить фильтрацию для моей таблицы, но в каждом подмножестве есть разная информация (записи данных).
Например. Фильтрация для типа A имеет данные в столбцах E и F, а для типа B — данные в E и G и т. д.
Теперь я хочу в любой момент отображать только столбцы, в которых есть данные, чтобы сделать набор данных более удобным для пользователя.
В настоящее время я работаю над этим кодом:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Long
Dim n As Long
Application.ScreenUpdating = False
n = Rows(2).Find(What:="*", SearchDirection:=xlPrevious).Column
For c = 3 To n
Cells(3, c).EntireColumn.Hidden = (Application.CountA(Columns(c)) < 2)
Next c
Application.ScreenUpdating = True
End Sub
Как вы могли заметить, это не скрывает столбцы на основе «Активного фильтра» из слайсера и не срабатывает при изменении фильтра (например, при выборе типа B, а не типа A в слайсере).