WorksheetBase.AutoFilterMode-Eigenschaft

Ruft einen Wert ab, der angibt, ob das Filtern auf dem Arbeitsblatt aktiviert ist (d. h., ob die Dropdownpfeile des Filters gerade angezeigt werden), oder ruft diesen Wert ab.

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

Syntax

'Declaration
Public Property AutoFilterMode As Boolean
public bool AutoFilterMode { get; set; }

Eigenschaftswert

Typ: System.Boolean
true , wenn das Filtern für das Arbeitsblatt aktiviert ist; andernfalls false.

Ausnahmen

Ausnahme Bedingung
COMException

Die Eigenschaft ist auf true festgelegt.

Hinweise

Sie können diese Eigenschaft auf false festlegen, um die Filterung zu deaktivieren (d. h. die Filterdropdownpfeile zu entfernen), aber sie kann nicht auf true festgelegt werden.Um das Filtern und Erstellen einer gefilterten Liste zu ermöglichen, verwenden Sie die AutoFilter-Methode eines Range-Objekts oder die AutoFilter-Methode eines NamedRange-Objekts.

Diese Eigenschaft gibt nur an, ob die Filterung aktiviert ist; sie gibt nicht an, ob alle Daten gefiltert werden.Um zu ermitteln, ob im Arbeitsblatt zurzeit Daten aktiv gefiltert werden, verwenden Sie die FilterMode-Eigenschaft.

Beispiele

Im folgenden Codebeispiel wird eine gefilterte Liste von Obstsorten in einem Range erstellt. Anschließend werden mithilfe der AutoFilter-Eigenschaft die Filterkriterien für die Liste angezeigt.Danach wird der Benutzer aufgefordert, den Filter mithilfe der AutoFilterMode-Eigenschaft zu deaktivieren, und schließlich wird mithilfe der FilterMode-Eigenschaft angezeigt, ob das Arbeitsblatt über eine gefilterte Liste verfügt.

Dieses Beispiel bezieht sich auf eine Anpassung auf Dokumentebene.

Private Sub ActivateAutoFilter()
    Me.Range("A1").Value2 = "Fruits"
    Me.Range("A2").Value2 = "Banana"
    Me.Range("A3").Value2 = "Apple"
    Me.Range("A4").Value2 = "Banana"
    Me.Range("A5").Value2 = "Orange"
    Me.Range("A6").Value2 = "Apple"
    Me.Range("A7").Value2 = "Orange"

    Dim NamedRange1 As Microsoft.Office.Tools.Excel.NamedRange = _
        Me.Controls.AddNamedRange(Me.Range("A1", "A7"), "NamedRange1")

    NamedRange1.AutoFilter(1, "Apple", Excel.XlAutoFilterOperator.xlAnd, _
        VisibleDropDown:=True)

    MsgBox("The current criteria for the AutoFilter is: " & _
        Me.AutoFilter.Filters(1).Criteria1.ToString())

    If Me.AutoFilterMode Then
        If DialogResult.Yes = MessageBox.Show("Would you like to " & _
            "turn off the filter?", "Example", MessageBoxButtons.YesNo) Then
            Me.AutoFilterMode = False
        End If
    End If

    If Me.FilterMode Then
        MsgBox("The worksheet has a filtered list.")
    Else
        MsgBox("The worksheet does not have a filtered list")
    End If
End Sub
private void ActivateAutoFilter()
{
    this.Range["A1"].Value2 = "Fruits";
    this.Range["A2"].Value2 = "Banana";
    this.Range["A3"].Value2 = "Apple";
    this.Range["A4"].Value2 = "Banana";
    this.Range["A5"].Value2 = "Orange";
    this.Range["A6"].Value2 = "Apple";
    this.Range["A7"].Value2 = "Orange";

    Microsoft.Office.Tools.Excel.NamedRange NamedRange1 =
        this.Controls.AddNamedRange(this.Range["A1", "A7"],
        "NamedRange1");

    NamedRange1.AutoFilter(1, "Apple",
       Excel.XlAutoFilterOperator.xlAnd, true);

    MessageBox.Show("The current criteria for the AutoFilter is: " +
        this.AutoFilter.Filters[1].Criteria1.ToString());

    if (this.AutoFilterMode)
    {
        if (DialogResult.Yes == MessageBox.Show("Would you like to " +
            "turn off the filter?", "Example", MessageBoxButtons.YesNo))
        {
            this.AutoFilterMode = false;
        }
    }

    if (this.FilterMode)
    {
        MessageBox.Show("The worksheet has a filtered list.");
    }
    else
    {
        MessageBox.Show("The worksheet does not have a filtered list");
    }
}

.NET Framework-Sicherheit

Siehe auch

Referenz

WorksheetBase Klasse

Microsoft.Office.Tools.Excel-Namespace