Freigeben über


ListObject.AutoFilter-Eigenschaft

Ruft eine gefilterte Tabelle ab.

Namespace:  Microsoft.Office.Tools.Excel
Assembly:  Microsoft.Office.Tools.Excel (in Microsoft.Office.Tools.Excel.dll)

Syntax

'Declaration
ReadOnly Property AutoFilter As AutoFilter
    Get
AutoFilter AutoFilter { get; }

Eigenschaftswert

Typ: Microsoft.Office.Interop.Excel.AutoFilter
Ein AutoFilter, der eine gefilterte Tabelle enthält.

Beispiele

Im folgenden Codebeispiel wird dem Arbeitsblatt ein ListObject hinzugefügt, das einer Tabelle in Excel entspricht. Im Beispiel wird dann die Tabelle mit zwei Reihen beliebiger Daten gefüllt und ein Filter für die Tabelle angegeben, der alle Zeilen herausfiltert, deren erster Spaltenwert nicht dem Zeichenfolgenwert "bb" entspricht. Als Nächstes wird im Beispiel die Anzahl der aktiven Filter angezeigt, die in der Tabelle gefunden wurden.

Dieses Beispiel bezieht sich auf eine Anpassung auf Dokumentebene.

Private Sub FilterListObject()
    ' Create ListObject control (table) and set table style
    Dim employeeTable As Microsoft.Office.Tools.Excel.ListObject = _
        Me.Controls.AddListObject(Me.Range("A1"), "employeeTable")

    ' Populate table with some data
    Dim rng As Excel.Range
    rng = employeeTable.InsertRowRange
    rng(ColumnIndex:=1).Value2 = "bb"
    rng(ColumnIndex:=2).Value2 = "b1"
    Dim row2 As Excel.ListRow = employeeTable.ListRows.AddEx( _
        AlwaysInsert:=True)
    rng = row2.Range
    rng(ColumnIndex:=1).Value2 = "aa"
    rng(ColumnIndex:=2).Value2 = "a1"

    ' Set a filter        
    employeeTable.Range.AutoFilter(1, "bb")        
    Dim activeFilterCount As Integer = 0
    For Each filter As Excel.Filter In employeeTable.AutoFilter.Filters
        If filter.On = True Then
            activeFilterCount += 1
        End If
    Next
    MessageBox.Show("There are " + activeFilterCount.ToString() _
        + " active filter(s) for table " + employeeTable.Name + ".")

End Sub
private void FilterListObject()
{
    // Create ListObject control (table) and set table style
    Microsoft.Office.Tools.Excel.ListObject employeeTable =
        this.Controls.AddListObject(this.Range["A1",missing], 
        "employeeTable");

    // Populate table with some data
    Excel.Range rng;
    rng = employeeTable.InsertRowRange;
    ((Excel.Range)(rng[missing, 1])).Value2 = "bb";            
    ((Excel.Range)(rng[missing,2])).Value2 = "b1";
    Excel.ListRow row2 = employeeTable.ListRows.AddEx(missing,true);
    rng = row2.Range;
    ((Excel.Range)(rng[missing,1])).Value2 = "aa";
    ((Excel.Range)(rng[missing,2])).Value2 = "a1";

    // Set a filter        
    employeeTable.Range.AutoFilter(1, "bb", 
        Excel.XlAutoFilterOperator.xlFilterValues,missing,missing);        
    int activeFilterCount = 0;
    foreach (Excel.Filter filter in employeeTable.AutoFilter.Filters)
    {
        if (filter.On == true)
        {
            activeFilterCount += 1;
        }
    }
    MessageBox.Show("There are " + activeFilterCount.ToString()
        + " active filter(s) for table " + employeeTable.Name + ".");

}

.NET Framework-Sicherheit

Siehe auch

Referenz

ListObject Schnittstelle

Microsoft.Office.Tools.Excel-Namespace