#excel #vba
Вопрос:
Я хочу использовать кнопку, которая запускает код VBA, который будет включать и выключать фильтр в столбце таблицы.
Это то, что у меня есть до сих пор:
Sub ToggleStatusFilter()
With ActiveSheet.ListObjects("Table4")
If .AutoFilter.Filters.Item(23).On Then
.Range.AutoFilter Field:=.ListColumns("Status").INDEX
Else
.Range.AutoFilter Field:=.ListColumns("Status").INDEX, Criteria1:="Completed"
End If
End With
End Sub
На данный момент этот код работает. Но я хочу иметь возможность заменить элемент(23) в коде именем столбца, чтобы при добавлении новых столбцов или удалении некоторых старых столбцов из таблицы и изменении положения столбца код все равно работал без необходимости его редактирования.
Есть ли способ, которым этого можно достичь? Любая помощь будет очень признательна.
Ответ №1:
Возможно, используя ListColumn.Index
(снова):
With ActiveSheet.ListObjects("Table4")
Dim indx As Long
indx = .ListColumns("columnHeader").Index
If .AutoFilter.Filters.Item(indx).On Then
Комментарии:
1. Это достаточно просто и прекрасно работает. Спасибо за такой быстрый ответ.