2011-10-13 61 views
2

我想要有按钮来更改我的Excel过滤器。宏按钮更改过滤器

我用contains=something过滤我的字段,所以每个按钮都应该改变那些文本。

Button1的:改变滤波器contains=button1

Button2的:改变滤波器contains=button2

等..

+1

与@JMax同意以上。另外作为一个起点,如果您还没有这样做,请运行宏录制器,对所需的过滤器进行更改,然后查看录制器生成的代码。 – Vicky

+0

哇我不知道这很容易。我正在寻找一个起点,在JMax的评论之后,我看到有一个叫做“保存宏”的按钮。感谢您的意见。我猜这个线程可以被删除。 – Ghokun

+1

@Ghokun:如果你认为它不值得(你在问题的底部有你自己的删除按钮),或者*更好*,你可以自己删除它,你可以将答案发布到自己的问题上并接受它,这可以帮助更多的读者,将有相同的问题,你有:) – JMax

回答

3

因为我发现自己回答,我把它放在这里供将来帮助。

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 
1

通过引用单元格中的过滤器搜索字符串,您可以更容易,如下所示。

Sub Filter() 
    Dim searchField As String 

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

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

End Sub 
0

我会在例如:将由旋转按钮改变字段F1控制的单元格h2。在这种情况下,我们有一个完整的解决方案

=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