ListObject表上的两个过滤器

时间:2016-09-02 22:43:03

标签: excel excel-vba vba

是否可以同时过滤单个表中的多个字段?

我有单个过滤器,但不知道如何添加第二个字段。

wS.ListObjects("StructureTable").Range.AutoFilter Field:=1, Criteria1:=wC.Range("F" & x)

谢谢!

1 个答案:

答案 0 :(得分:0)

您只需再次调用AutoFilter方法,并为2参数提供Field(假设您的表有2列)。 E.g:

wS.ListObjects("StructureTable").Range.AutoFilter Field:=**2**, Criteria1:=wC.Range("F" & x)

完整代码:

Option Explicit

Sub Test()

    Dim ws As Worksheet
    Dim lst As ListObject

    Set ws = ThisWorkbook.Worksheets(1)
    Set lst = ws.ListObjects(1)

    'clear any existing filter
    If lst.ShowAutoFilter Then
        lst.ShowAutoFilter = False
    End If

    'set filter from range parameters
    With lst.Range
        .AutoFilter Field:=1, Criteria1:=ws.Range("D1")
        .AutoFilter Field:=2, Criteria1:=ws.Range("E1")
    End With

End Sub

在:

enter image description here

后:

enter image description here