vba怎么做多條件篩選

vba
小億
771
2023-11-24 06:02:26

在VBA中,可以使用多種方法進(jìn)行多條件篩選。以下是其中的一種方法:

  1. 使用AutoFilter方法進(jìn)行篩選。

    Sub MultiConditionFilter()
        Dim ws As Worksheet
        Set ws = ThisWorkbook.Sheets("Sheet1") '更改為你的工作表名稱
        
        With ws
            '第一個(gè)條件
            .Range("A1").AutoFilter Field:=1, Criteria1:="條件1"
            '第二個(gè)條件
            .Range("A1").AutoFilter Field:=2, Criteria1:="條件2"
            '...
            '根據(jù)需要,繼續(xù)添加條件
        End With
    End Sub
    

    上述代碼中,使用AutoFilter方法對(duì)工作表的某一列進(jìn)行篩選,并設(shè)置條件值??梢酝ㄟ^(guò)修改Field參數(shù)來(lái)指定篩選的列,通過(guò)修改Criteria1參數(shù)來(lái)設(shè)置篩選條件的值。

  2. 使用AdvancedFilter方法進(jìn)行篩選。

    Sub MultiConditionFilter()
        Dim ws As Worksheet
        Dim rngCriteria As Range
        Dim rngData As Range
        Dim rngResult As Range
        
        Set ws = ThisWorkbook.Sheets("Sheet1") '更改為你的工作表名稱
        Set rngData = ws.Range("A1:B10") '更改為你的數(shù)據(jù)范圍
        Set rngCriteria = ws.Range("D1:F2") '更改為你的條件范圍
        Set rngResult = ws.Range("H1") '更改為你的結(jié)果范圍
        
        With ws
            .Range("H1").Value = "條件1"
            .Range("I1").Value = "條件2"
            '...
            '根據(jù)需要,繼續(xù)添加條件標(biāo)題
            
            .Range("H2").Formula = "=D2" '更改為你的條件單元格引用
            .Range("I2").Formula = "=E2" '更改為你的條件單元格引用
            '...
            '根據(jù)需要,繼續(xù)添加條件單元格引用
            
            .Range("H1:I2").Copy
            .Range("H1:I2").PasteSpecial Paste:=xlPasteValues
            
            .Range("H1:I2").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=rngCriteria
            
            rngData.SpecialCells(xlCellTypeVisible).Copy rngResult
            ws.ShowAllData
        End With
    End Sub
    

    上述代碼中,使用AdvancedFilter方法對(duì)工作表的數(shù)據(jù)進(jìn)行篩選,并將結(jié)果粘貼到指定的范圍中??梢酝ㄟ^(guò)修改rngData參數(shù)來(lái)指定數(shù)據(jù)的范圍,通過(guò)修改rngCriteria參數(shù)來(lái)指定條件范圍,通過(guò)修改rngResult參數(shù)來(lái)指定結(jié)果范圍。需要在條件范圍中提前設(shè)置條件。

這只是多條件篩選的一種實(shí)現(xiàn)方式,根據(jù)具體需求,你還可以使用其他方法進(jìn)行多條件篩選。

0