Excel 宏按钮更改过滤器

Excel 宏按钮更改过滤器,excel,vba,excel-2007,Excel,Vba,Excel 2007,我想用按钮来更改我的excel过滤器 我使用contains=something过滤字段,因此每个按钮都应该更改该文本 按钮1:将过滤器更改为contains=Button1 按钮2:将过滤器更改为contains=Button2 等等。自从我自己找到了答案,我把它放在这里以备将来的帮助 Sub AI() ' sheet range and which field you want to filter and criteria to search

我想用按钮来更改我的excel过滤器

我使用
contains=something
过滤字段,因此每个按钮都应该更改该文本

按钮1:将过滤器更改为
contains=Button1

按钮2:将过滤器更改为
contains=Button2


等等。

自从我自己找到了答案,我把它放在这里以备将来的帮助

    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

通过引用单元格中的筛选器搜索字符串,可以简化此操作,如下所示

Sub Filter()
    Dim searchField As String

    searchField = "=*" & Range("H2") & "*"

    ActiveSheet.Range("$A$3:$H$18401").AutoFilter Field:=8, Criteria1:= _
        searchField, Operator:=xlAnd

End Sub

我会在单元格h2中添加一个HLOOKUP,该单元格将由旋转按钮更改字段F1控制。在这种情况下,我们有一个完整的解决方案

 =HLOOKUP(h2;h2:h100;F1;0)
这与上面提供的宏相结合:

Sub Filter()
     Dim searchField As String

     searchField = "=*" & Range("H2") & "*"

    ActiveSheet.Range("$A$3:$H$18401").AutoFilter Field:=8, Criteria1:= _
        searchField, Operator:=xlAnd

 End Sub

同意上面的@JMax。同样作为一个起点,如果您还没有这样做,那么运行宏记录器,对过滤器进行所需的更改,然后查看记录器生成的代码。哇,我不知道这么简单。我在寻找一个起点,在JMax的评论之后,我看到了一个名为savemacro的按钮。谢谢你的评论。我想这个帖子可以删除。@Ghokun:如果你认为不值得,你可以自己删除它(你在问题的底部有自己的删除按钮),或者更好,你可以把你的答案贴到自己的问题上并接受它,这样可以帮助更多的读者,他们会有和你一样的问题:)