Range.AutoFIlter方法可以進行自動篩選,,語法結構如下: Range.AutoFilter(Field,Criteria1Operator,Criteria2,VIsibleDropDown); 參數說明: Field可選,,篩按33選的字段的整型偏移量,,;例如篩選A列的字段則取值1,,篩選D列的字段則取值4; Criteria1,,可選,,字符串類型。篩選條件可以使用“=”,,“<”,“>”,,“<>”等運算符; Operator,,可選,,指定篩選類型。設置為xlAutoFileterOpearator枚舉中的常量之一,,如下表所示:
Critera2,,可選,,第二個篩選條件,與Criteria1和Operator一起組成復合篩選條件,; VIsibleDropDown,,可選,如果設置為true,,則顯示篩選字段的自動篩下拉箭頭,。
下表為例1到例5使用的數據
【例1】篩選省份為湖北的數據 Worksheets(1).Select If ActiveSheet.AutoFilterMode = False Then '檢查是否開啟自動篩選 Range("A1:B9").AutoFilter '沒有開啟的話則開啟自動篩選 End If
ActiveSheet.Range("A1:B9").AutoFilter field:=1, Criteria1:="湖北" 【例2】篩選省份為“湖北”且年份為2013的數據 Worksheets(1).Select If ActiveSheet.AutoFilterMode = False Then '檢查是否開啟自動篩選 Range("A:B").AutoFilter '沒有開啟的話則開啟自動篩選 End If
ActiveSheet.Range("A:B").AutoFilter field:=1, Criteria1:="湖北" ActiveSheet.Range("A:B").AutoFilter field:=2, Criteria1:="2013", Operator:=xlAnd 【例3】篩選省份為“湖北”或“廣東”的數據 ActiveSheet.Range("A:B").AutoFilter field:=1, Criteria1:="湖北", Operator:=xlOr, Criteria2:="廣東" 【例4】篩選“產量”字段高出平均值的所有記錄 ActiveSheet.Range("A1:C10").AutoFilter field:=3, Criteria1:=xlfilteraboveaverage, Operator:=xlfilterdynamic 【例5】篩選“產量”字體設置為紅色的記錄 ActiveSheet.Range("A1:C10").AutoFilter field:=3, Criteria1:=RGB(255, 0, 0), Operator:=xlfilterfoncolor
下表為例6到例8使用的數據 【例6】篩選姓“鄭”且姓名為兩個字的記錄 ActiveSheet.Range("A1:C10").AutoFilter field:=1, Criteria1:="=??", Operator:=xlAnd, Criteria2:="=鄭*" 【例7】篩選不姓“鄭”且姓名為兩個字的記錄 ActiveSheet.Range("A1:C10").AutoFilter field:=1, Criteria1:="=??", Operator:=xlAnd, Criteria2:="<>鄭*" 【例8】清除篩選條件 ActiveSheet.ShowAllData 注意:ActiveSheet.ShowAllData必須在工作表開啟了自動篩選且存在篩選條件時使用,否則會報錯. 【例9】使用高級篩選,,選出不重復的記錄并拷貝到另外一張工作表 Sub test() Worksheets("AVIC384").Range("D:D").AdvancedFilter _ Action:=xlFilterCopy, unique:=True, _ copyTorange:=Worksheets("tools").Range("H1") End Sub |
|