Excel VBA教程:AutoFilter对象

Worksheets(Worksheets)
AutoFilter
Filters (Filter)

代表对指定工作表的自动筛选。

AutoFilter对象的用法

可用 AutoFilter属性返回 AutoFilter对象。使用 Filters方法可返回由各个列筛选组成的集合。使用 Range方法可返回 Range对象,该对象代表整个筛选区域。下例将保存当前筛选的地址和筛选条件,然后应用新的筛选。


Dim w As Worksheet
Dim filterArray()
Dim currentFiltRange As String
Sub ChangeFilters()
Set w = Worksheets("Crew")
With w.AutoFilter
    currentFiltRange = .Range.Address
    With .Filters
        ReDim filterArray(1 To .Count, 1 To 3)
        For f = 1 To .Count
            With .Item(f)
                If .On Then
                    filterArray(f, 1) = .Criteria1
                    If .Operator Then
                        filterArray(f, 2) = .Operator
                        filterArray(f, 3) = .Criteria2
                    End If
                End If
            End With
        Next
    End With
End With
w.AutoFilterMode = False
w.Range("A1").AutoFilter field:=1, Criteria1:="S"
End Sub

若要为工作表创建一个 AutoFilter对象,必须先手动或使用 Range对象的 AutoFilter方法打开工作表上某个区域上的筛选。下例将使用存储在上例模块级变量中的值来为“Crew”工作表恢复最初的自动筛选。


Sub RestoreFilters()
Set w = Worksheets("Crew")
w.AutoFilterMode = False
For col = 1 To UBound(filterArray(), 1)
    If Not IsEmpty(filterArray(col, 1)) Then
        If filterArray(col, 2) Then
            w.Range(currentFiltRange).AutoFilter field:=col, _
                Criteria1:=filterArray(col, 1), _
                    Operator:=filterArray(col, 2), _
                Criteria2:=filterArray(col, 3)
        Else
            w.Range(currentFiltRange).AutoFilter field:=col, _
                Criteria1:=filterArray(col, 1)
        End If
    End If
Next
End Sub

上页:Excel VBA教程:AutoCorrect对象 下页:Excel VBA教程:AutoRecover对象

Excel VBA教程:AutoFilter对象

Excel VBA教程:AutoRecover对象 Excel VBA教程:Axes集合对象
Excel VBA教程:Axis对象 Excel VBA教程:AxisTitle对象
Excel VBA教程:Border对象 Excel VBA教程:Borders集合
Excel VBA教程:CalculatedFields集合对象 Excel VBA教程:CalculatedItems集合对象
Excel VBA教程:CalculatedMember对象 Excel VBA教程:CalculatedMembers集合
Excel VBA教程:CalloutFormat对象 Excel VBA教程:CellFormat对象
Excel VBA教程:Characters对象 Excel VBA教程:Chart对象
Excel VBA教程:ChartArea对象 Excel VBA教程:ChartColorFormat对象
Excel VBA教程:ChartFillFormat对象 Excel VBA教程:ChartGroup对象
Excel VBA教程:ChartGroups集合 Excel VBA教程:ChartObject对象
版权所有 © 中山市飞娥软件工作室 证书:粤ICP备09170368号