Partilhar via


Propriedade WorksheetBase.AutoFilterMode

Obtém ou define um valor que indica se a filtragem está ativada no momento na planilha (ou seja, se as setas suspensas de filtro são exibidas no momento).

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

Sintaxe

'Declaração
Public Property AutoFilterMode As Boolean
    Get
    Set
public bool AutoFilterMode { get; set; }

Valor de propriedade

Tipo: System.Boolean
true Se a filtragem está ativada no momento na planilha. Caso contrário, false.

Exceções

Exceção Condição
COMException

Essa propriedade é definida como true.

Comentários

Você pode definir essa propriedade false para desativar a filtragem (ou seja, para remover as setas da lista suspensa Filtro), mas você não pode ser definido como true. Para habilitar a filtragem e criar uma lista filtrada, use o AutoFilter método de um Range objeto ou use o AutoFilter o método de um NamedRange objeto.

Esta propriedade indica somente se a filtragem está ativada; ele não indica se todos os dados está sendo filtrados. Para determinar se a planilha esteja filtrando ativamente dados, use o FilterMode propriedade.

Exemplos

O exemplo de código a seguir cria uma lista filtrada de frutas em um Rangee usa o AutoFilter propriedade para exibir os critérios de filtro da lista. O exemplo solicita que o usuário desativar o filtro usando o AutoFilterMode propriedade e, por fim, usa o FilterMode propriedade para especificar se a planilha tem uma lista filtrada.

Este exemplo é para uma personalização em nível de 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", missing].Value2 = "Fruits";
    this.Range["A2", missing].Value2 = "Banana";
    this.Range["A3", missing].Value2 = "Apple";
    this.Range["A4", missing].Value2 = "Banana";
    this.Range["A5", missing].Value2 = "Orange";
    this.Range["A6", missing].Value2 = "Apple";
    this.Range["A7", missing].Value2 = "Orange";

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

    NamedRange1.AutoFilter(1, "Apple",
       Excel.XlAutoFilterOperator.xlAnd, missing, 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");
    }
}

Segurança do .NET Framework

Consulte também

Referência

WorksheetBase Classe

Namespace Microsoft.Office.Tools.Excel