Excel VBA Autofilter包含多个标准

我需要使用运算符Contains来筛选具有多个条件的范围

下面的代码工作得很好(2个critera):

shData.UsedRange.AutoFilter field:=2, Criteria1:=Array("*a*", "*b*"), Operator:=xlFilterValues 

但是,不知道为什么下面的代码不起作用(超过2个标准):

 shData.UsedRange.AutoFilter field:=2, Criteria1:=Array("*a*", "*b*", "*c*"), Operator:=xlFilterValues 

有人可以请帮忙吗?

谢谢。

这是自动filter的限制。 用户界面中不能使用两个以上的包含filter。

您可以改为使用高级filter,也可以使用该filter创build符合条件和过滤条件的值的数组:

 Sub MultiContainsAutofilter() Dim vData Dim shData As Worksheet Dim d As Object Dim i As Long Set shData = ActiveSheet vData = shData.UsedRange.Columns(2) Set d = CreateObject("Scripting.Dictionary") For i = LBound(vData, 1) To UBound(vData, 1) If UCase$(vData(i, 1)) Like "*A*" Or UCase$(vData(i, 1)) Like "*B*" Or UCase$(vData(i, 1)) Like "*C*" Then d(vData(i, 1)) = Empty End If Next i If d.Count > 0 Then shData.UsedRange.AutoFilter Field:=2, Criteria1:=d.keys, Operator:=xlFilterValues End Sub