#excel #vba #excel-2007
#excel #vba #excel-2007
Вопрос:
Я хочу иметь кнопки для изменения моего фильтра Excel.
Я фильтрую свои поля, contains=something
поэтому каждая кнопка должна изменять этот текст.
Кнопка 1: измените фильтр на contains=button1
Кнопка 2: измените фильтр на contains=button2
и так далее..
Комментарии:
1. Согласен с @JMax выше. Также в качестве отправной точки, если вы еще этого не сделали, запустите Macro recorder, внесите необходимые изменения в фильтр, а затем просмотрите код, сгенерированный регистратором.
2. вау, я не знал, что это так просто. Я искал начальную точку, и после комментария JMax я увидел, что есть кнопка под названием сохранить макрос. Спасибо за комментарии. Я думаю, этот поток можно удалить.
3. @Ghokun: вы можете либо удалить его самостоятельно, если считаете, что оно того не стоит (у вас есть своя кнопка удаления внизу вашего вопроса), либо, что еще лучше , вы можете опубликовать свой ответ на свой собственный вопрос и принять его, что может помочь дальнейшим читателям, у которых возникнет тот же вопрос, что иу вас было 🙂
Ответ №1:
Поскольку я сам нашел ответ, я поместил его здесь для будущей помощи.
Sub AI()
' sheet range and which field you want to filter and criteria to search
ActiveSheet.Range("$A$2:$Z$203").AutoFilter Field:=14, Criteria1:="stringtomatch"
End Sub
Ответ №2:
Вы могли бы упростить задачу, сославшись на строку поиска фильтра из ячейки следующим образом.
Sub Filter()
Dim searchField As String
searchField = "=*" amp; Range("H2") amp; "*"
ActiveSheet.Range("$A$3:$H$18401").AutoFilter Field:=8, Criteria1:= _
searchField, Operator:=xlAnd
End Sub
Ответ №3:
Я бы добавил поиск, например, в ячейку h2, которая будет управляться кнопкой вращения, меняющей поле F1. в этом случае у нас есть полное решение
=HLOOKUP(h2;h2:h100;F1;0)
Это сочетается с этим макросом, представленным выше:
Sub Filter()
Dim searchField As String
searchField = "=*" amp; Range("H2") amp; "*"
ActiveSheet.Range("$A$3:$H$18401").AutoFilter Field:=8, Criteria1:= _
searchField, Operator:=xlAnd
End Sub