Excel 筛选多个列/字段

Excel 筛选多个列/字段,excel,autofilter,vba,Excel,Autofilter,Vba,我有一个Excel表格,大约有10列和数百行。我希望在多个列上应用过滤器,以便仅当两个列上的条件都满足时才显示数据 一列有团队名称,另一列有团队编号。只有当团队名称为“项目”或wkFilterTeam变量中的值且团队编号为“团队2”时,才应显示数据 Function ProcessTeams(inTeamName As String) As Integer wkFilterTeam = inTeamName If (InStr(wkFilterTeam, "Markets")

我有一个Excel表格,大约有10列和数百行。我希望在多个列上应用过滤器,以便仅当两个列上的条件都满足时才显示数据

一列有
团队名称
,另一列有
团队编号
。只有当
团队名称
“项目”wkFilterTeam变量中的值且
团队编号
“团队2”时,才应显示数据

Function ProcessTeams(inTeamName As String) As Integer
     wkFilterTeam = inTeamName
     If (InStr(wkFilterTeam, "Markets") > 0) Then
         With Sheets("RawData")
            .AutoFilterMode = False
            Range("$A:$BG").AutoFilter
            Range("$A:$BG").AutoFilter FIELD:=3, 
            Criteria1:=Array(wkFilterTeam, "Projects"), Operator:=xlFilterValues
            Range("$A:$BG").AutoFilter FIELD:=4, Criteria1:=Array("Team2"), Operator:=xlFilterValues
         End With
     EndIf
End Function

但是这会显示所有名为项目且团队编号为Team2

的团队将其删除,您的代码应该可以工作。您能否给出错误过滤数据的屏幕截图,即显示D列不包含“Team2”的位置例如,假设
wkFilterTeam
是一个
String
变量,其中必须包含字符串
“Markets”
,那么您的代码没有理由执行带有“OR”的筛选器在字段3和字段4之间-自动筛选不允许跨字段出现
条件,尽管许多人希望能够这样做。请在数据被错误过滤后发布一个屏幕截图,例如显示D列不包含“Team2”的位置。@SachinMhetre但这正是您的代码所做的。您能否在过滤前添加数据截图和错误过滤结果截图?请告诉我们如何使用wkFilterTeam的值(您可以使用
debug.print wkFilterTeam
@Vegard将其打印到调试窗口。我认为使用
Criteria1:=Array(“a”,“b”)
和使用
Criteria1:=“a”,运算符:=xlOr,Criteria2:=“b”没有区别
。由于我的测试,两者都以
a
b
结尾,不是吗?