2010-03-18 164 views
2

我需要使用VBA来过滤excel中的一些信息。因为我有一个20列的excel,现在想要使用AutoFilter函数来搜索某些列,如果它包含一个值(例如:ID010)。我想要的是它会显示至少有一列包含ID010的所有行。在Excel VBA中使用多列自动过滤器

目前,我使用下面的代码进行搜索。然而,因为所有的标准,似乎绑在一起使用AND运算

' Search range, [argIn]---> search value 
With [D5:M65536] 
     .AutoFilter Field:=4, Criteria1:=argIn 
     .AutoFilter Field:=5, Criteria1:=argIn 
     .AutoFilter Field:=6, Criteria1:=argIn 
     .AutoFilter Field:=7, Criteria1:=argIn 
     .AutoFilter Field:=8, Criteria1:=argIn 
     .AutoFilter Field:=9, Criteria1:=argIn 
     .AutoFilter Field:=10, Criteria1:=argIn 
     .AutoFilter Field:=11, Criteria1:=argIn 
     .AutoFilter Field:=12, Criteria1:=argIn 
     .AutoFilter Field:=13, Criteria1:=argIn 
End With 

我不知道是否有人可以给我一些提示或例子如何处理这个问题,它找不到任何数据。

预先感谢您。

回答

2

自动筛选功能无法帮助您,因为您已经发现其行为与筛选器结合在一起。

一种方法是在填充工作表功能的电子表格(也许通过VBA保持)一个控制柱像

=COUNTIF(A$2:A$20, "ID010") 

然后将过滤器应用到控制列。

+0

感谢您的回复。它工作完美 – 2010-03-23 06:49:35