Excel VBA中具有多列的自动过滤器

时间:2010-03-18 09:29:33

标签: excel-vba vba excel

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

目前,我使用以下代码进行搜索。但是,它找不到任何数据,因为所有标准似乎都使用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

我想知道是否有人可以给我一些提示或示例来处理这个问题。

提前谢谢。

1 个答案:

答案 0 :(得分:2)

自动过滤器功能对您没有帮助,因为您已经发现行为是和过滤器一起使用。

一种方法是在电子表格中创建一个 control 列(可能通过VBA维护),其中填充了

等工作表函数
=COUNTIF(A$2:A$20, "ID010")

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