Vba 在Excel中使用宏筛选数据

Vba 在Excel中使用宏筛选数据,vba,excel,macros,Vba,Excel,Macros,我有一行代码使用excel中的宏过滤数据。我希望它在一列中过滤掉两个不同的标准。请参阅下面的代码。从谷歌的角度来看,它应该是可行的,但事实并非如此 Sub Unmet_Projects() With Sheet1 .AutoFilterMode = False .Range("A1:CA1").AutoFilter .Range("A1:CA1").AutoFilter Field:=3, Criteria1:="Fulfilled", Operator:=xlAnd,

我有一行代码使用excel中的宏过滤数据。我希望它在一列中过滤掉两个不同的标准。请参阅下面的代码。从谷歌的角度来看,它应该是可行的,但事实并非如此

Sub Unmet_Projects()

With Sheet1
    .AutoFilterMode = False
    .Range("A1:CA1").AutoFilter
    .Range("A1:CA1").AutoFilter Field:=3, Criteria1:="Fulfilled", Operator:=xlAnd, Criteria2:="Requested", VisibleDropDown:=False                    
End With

End Sub

我认为应该是
Operator:=xlOr
而不是
Operator:=xlAnd
,因为第3列(第
C列
)中的值只能
满足
或要求

如果您希望在筛选器中包含更多值,我建议改为使用以下选项:

.Range("A1:CA1").AutoFilter Field:=3, Criteria1:=Array("Fulfilled", "Requested", "Partially Assigned", "Not yet assigned", "Assigned", "etc..."), Operator:=xlFilterValues

太好了,谢谢你。是否可以添加更多标准。我实际上还有4个值需要过滤。我已经尝试过了,但是它用Sheet1.AutoFilterMode=False覆盖了第一个值.Sub unmeted_Projects1()。范围(“A1:CA1”).AutoFilter.Range(“A1:CA1”).AutoFilter字段:=3,标准1:=“已完成”,运算符:=xlOr,标准2:=“已请求”,可见下拉列表:=True.Range(“A1:CA1”)。AutoFilter字段:=3,标准1:=“部分分配”,运算符:=xlOr,标准2:=“软预订”,VisibleDropDown:=True End With End sub如果此解决方案解决了您的问题,请将此帖子标记为已解决。如果您有新问题,请发布新问题。