close

取消篩選

Sub 取消篩選()

    Dim ws1 As Worksheet

    For Each ws1 In Worksheets

        ws1.AutoFilterMode = False

    Next

End Sub

 

簡單篩選

使用Range對象的AutoFilter方法,可對Range區域的數據中使用「自動篩選」篩選一個列表。該方法的語法如下:

表達式.AutoFilter(Field, Criteria1, Operator, Criteria2, VisibleDropDown)

各參數的含義如下:

—    Field:相對於作為篩選基準字段(從列表左側開始,最左側的字段為第一個字段)的字段的整型偏移量。

—    Criteria1:篩選條件,為一個字符串。使用「=」可查找空字段,或者使用「<>」查找非空字段。如果省略該參數,則搜索條件為All。如果將Operator設置為xlTop10Items,則Criteria1指定數據項個數(例如,「10」)。

—    Operator:指定篩選類型,可用常量如表12-2所示。

表12-2  篩選類型

   

   

xlAnd

1

條件1和條件2的邏輯與

xlBottom10Items

4

顯示最低值項(條件1中指定的項數)

xlBottom10Percent

6

顯示最低值項(條件1中指定的百分數)

xlFilterCellColor

8

單元格顏色

xlFilterDynamic

11

動態篩選

xlFilterFontColor

9

字體顏色

xlFilterIcon

10

篩選圖標

xlFilterValues

7

篩選值

xlOr

2

條件1和條件2的邏輯或

xlTop10Items

3

顯示最高值項(條件1中指定的項數)

xlTop10Percent

5

顯示最高值項(條件1中指定的百分數)

—    Criteria2:第二個篩選條件(一個字符串)。與Criteria1和Operator一起組合成復合篩選條件。

—    VisibleDropDown:如果為True,則顯示篩選字段的自動篩選下拉箭頭。如果為False,則隱藏篩選字段的自動篩選下拉箭頭。默認值為True。

 

高級篩選

Excel的高級篩選可用VBA代碼來實現,使用Range對象的AdvancedFilter方法即可進行高級篩選。

高級篩選必須在工作表中定義一個條件區域,通過該條件從列表中篩選或複製數據。如果初始選定區域為單個單元格,則使用單元格的當前區域。AdvancedFilter方法的語法格式如下:

表達式.AdvancedFilter(Act ion, CriteriaRange, CopyToRange, Unique)

該方法各參數的含義如下:

—    Act ion:指定是否就地複製或篩選列表,可使用常量xlFilterCopy(將篩選出的數據複製到新位置)或xlFilterInPlace(保留數據不動)。

—    CriteriaRange:條件區域。如果省略該參數,則沒有條件限制。

—    CopyToRange:如果Act ion為xlFilterCopy,則該參數為複製行的目標區域。否則,忽略該參數。

—    Unique:如果為True,則只篩選唯一記錄。如果為False,則篩選符合條件的所有記錄。默認值為False。

Sub 高級篩選()

    Dim rng As Range, rng1 As Range

   

    Application.ScreenUpdating = False

    Application.Calculation = xlCalculationManual    '手動重算

   

    Set rng = Worksheets("Sheet1").Range("A19").CurrentRegion

    Set rng = rng.Offset(1, 0).Resize(rng.Rows.Count - 1, rng.Columns.Count)

   

    Set rng1 = Worksheets("Sheet1").Range("A1").CurrentRegion

    Set rng1=rng1.Offset(1,0).Resize(rng1.Rows.Count-1, rng1.Columns.Count)

   

    rng1.AdvancedFilter Act ion:=xlFilterInPlace, CriteriaRange:=rng

    Application.Calculation = xlCalculationAutomatic '自動重算

    Application.ScreenUpdating = True

End Sub

以上代碼首先獲取工作表中條件區域和篩選數據區域的引用,最後使用AdvancedFilter方法對數據區域進行篩選

對日期段做篩選

Private Sub vv()
Dim i As Date, j As Date
i = InputBox("請輸入 『開始』 查詢時間 輸入格式 如 2006/1/1")
j = InputBox("請輸入 『結束』 查詢時間 輸入格式 如 2006/1/1")
  Selection.AutoFilter Field:=5, Criteria1:="<" & j, Operator:=xlAnd, _
    Criteria2:=">" & i
End Sub

AutoFilter 方法

使用 [自動篩選] 篩選出一個清單。為 Variant。
 
附註   將 AutoFilter 屬性套用至 Worksheet 物件,以傳回 AutoFilter 物件。
 
expression.AutoFilter(Field, Criteria1, Operator, Criteria2, VisibleDropDown)
expression      必選。該運算式會傳回 [套用於] 清單中的其中一個物件。
 
Field     選擇性的 Variant。相對於作為篩選基準欄位 (從清單左側開始,最左側的欄位為第一個欄位) 的位移。
 
Criteria1     選擇性的 Variant。篩選準則 (一個字串;例如,"101")。使用 "=" 可搜尋到空欄位,或者使用 "<>" 可搜尋到非空欄位。如果省略該引數,則搜尋準則為 All。如果 Operator 為 xlTop10Items,Criteria1 則指定項目個數 (例如,"10")。
 
Operator     選擇性的 XlAutoFilterOperator 資料類型。
 
XlAutoFilterOperator 可以是這些 XlAutoFilterOperator 常數之一。
xlAnd default
xlBottom10Items
xlBottom10Percent
xlOr
xlTop10Items
xlTop10Percent
可使用 xlAnd 和 xlOr 將 Criteria1 和 Criteria2 建構複合準則。
 
Criteria2     選擇性的 Variant。第二準則 (一個字串)。與 Criteria1 和 Operator 建構為複合的準則。
 
VisibleDropDown      選擇性的 Variant。若篩選欄位顯示 [自動篩選] 下拉箭頭,則為 True。若篩選欄位隱藏 [自動篩選] 下拉箭頭,則為 False。預設值為 True。
 
備註
如果您忽略所有的引數,此方法只會切換指定範圍中 [自動篩選] 下拉箭頭的顯示。
 
'本程序自動篩選顧客名稱為BOTTM, 人員代號為3的資料錄
Sub vbaAFilter()
Dim Rng As Range        '自動篩選結果範圍
Dim theRow As Range     '各區域的資料列
Dim theArea As Range        '各區域範圍
    With Sheets("Orders")       '在Orders工作表中
        Set Rng = .UsedRange    '所有資料範圍
        Rng.AutoFilter Field:=2, Criteria1:="BOTTM"     '篩選出顧客為BOTTOM者
        Rng.AutoFilter Field:=3, Criteria1:="3"         '再篩選出員工代號為3者
        '設定篩選結果範圍
        Set Rng = Rng.Resize(Rng.Rows.Count - 1).Offset(1, 0).SpecialCells(xlCellTypeVisible)
    End With
    '遍歷篩選結果範圍各AREA
    For Each theArea In Rng.Areas
        '遍歷各AREA的各列
        For Each theRow In theArea.Rows
            theRow.Select       '選定此列
            MsgBox theRow.Address       '顯示此列的位址
        Next
    Next
    Rng.AutoFilter          '解除自動篩選狀態
End Sub


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 Chang 仁 的頭像
    Chang 仁

    i飛翔~仁仔

    Chang 仁 發表在 痞客邦 留言(0) 人氣()