Condividi tramite


Proprietà WorksheetBase.AutoFilterMode

Ottiene o imposta un valore che indica se il filtraggio è attualmente abilitato nel foglio di lavoro, ovvero se sono attualmente visualizzate le frecce a discesa del filtro.

Spazio dei nomi:  Microsoft.Office.Tools.Excel
Assembly:  Microsoft.Office.Tools.Excel.v4.0.Utilities (in Microsoft.Office.Tools.Excel.v4.0.Utilities.dll)

Sintassi

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

Valore proprietà

Tipo: System.Boolean
true se il filtraggio è attualmente abilitato nel foglio di lavoro. In caso contrario false.

Eccezioni

Eccezione Condizione
COMException

Questa proprietà è impostata su true.

Note

È possibile impostare questa proprietà su false per disabilitare il filtro (cioè, per rimuovere le frecce a discesa del filtro). Non è tuttavia possibile impostarla su true. Per abilitare il filtro e creare un elenco filtrato, utilizzare il metodo AutoFilter di un oggetto Range o utilizzare il metodo AutoFilter di un oggetto NamedRange.

Questa proprietà indica solo se è abilitato il filtraggio; non indica se viene filtrato qualsiasi dato. Per determinare se nel foglio di lavoro è attiva la modalità di filtro dei dati, utilizzare la proprietà FilterMode.

Esempi

Nell'esempio di codice riportato di seguito viene creato un elenco filtrato di frutti in un oggetto Range. Viene quindi utilizzata la proprietà AutoFilter per visualizzare i criteri di filtro per l'elenco. Viene poi chiesto all'utente di disattivare il filtro utilizzando la proprietà AutoFilterMode e infine viene utilizzata la proprietà FilterMode per visualizzare se il foglio di lavoro contiene un elenco filtrato.

Questo esempio è valido per una personalizzazione a livello di documento.

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");
    }
}

Sicurezza di .NET Framework

Vedere anche

Riferimenti

WorksheetBase Classe

Spazio dei nomi Microsoft.Office.Tools.Excel