Compartir a través de


WorksheetBase.AutoFilterMode (Propiedad)

Obtiene o establece un valor que indica si el filtrado está habilitado actualmente en la hoja de cálculo (es decir, si actualmente se muestran las flechas desplegables del filtro).

Espacio de nombres:  Microsoft.Office.Tools.Excel
Ensamblado:  Microsoft.Office.Tools.Excel.v4.0.Utilities (en Microsoft.Office.Tools.Excel.v4.0.Utilities.dll)

Sintaxis

'Declaración
Public Property AutoFilterMode As Boolean
public bool AutoFilterMode { get; set; }

Valor de propiedad

Tipo: System.Boolean
true si el filtrado está habilitado actualmente en la hoja de cálculo; de lo contrario, false.

Excepciones

Excepción Condición
COMException

Esta propiedad se establece en true.

Comentarios

Puede establecer esta propiedad en false para deshabilitar el filtrado (es decir, quitar las flechas desplegables del filtro), pero no puede establecerla en true.Para habilitar el filtrado y crear una lista filtrada, use el método AutoFilter de un objeto Range o use el método AutoFilter de un objeto NamedRange.

Esta propiedad sólo indica si el filtrado está habilitado; no indica si está siendo filtrado cualquier dato.Para determinar si la hoja de cálculo está filtrando activamente los datos, use la propiedad FilterMode.

Ejemplos

El ejemplo de código siguiente crea una lista filtrada de frutas en un objeto Range y, a continuación, utiliza la propiedad AutoFilter para mostrar los criterios de filtro de la lista.A continuación, el ejemplo pide al usuario que desactive el filtro mediante la propiedad AutoFilterMode y, por último, utiliza la propiedad FilterMode para mostrar si la hoja de cálculo tiene una lista filtrada.

Se trata de un ejemplo para una personalización en el nivel del 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");
    }
}

Seguridad de .NET Framework

Vea también

Referencia

WorksheetBase Clase

Microsoft.Office.Tools.Excel (Espacio de nombres)