Compartir a través de


WorksheetBase.AutoFilter (Propiedad)

Obtiene una interfaz Microsoft.Office.Interop.Excel.AutoFilter que proporciona información sobre las listas filtradas en la hoja de cálculo si el filtrado está habilitado. Obtiene nullreferencia null (Nothing en Visual Basic) si el filtrado está desactivado.

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 ReadOnly Property AutoFilter As AutoFilter
    Get
public AutoFilter AutoFilter { get; }

Valor de propiedad

Tipo: Microsoft.Office.Interop.Excel.AutoFilter
Una interfaz Microsoft.Office.Interop.Excel.AutoFilter que proporciona información sobre las listas filtradas en la hoja de cálculo si el filtrado está habilitado; de lo contrario, nullreferencia null (Nothing en Visual Basic).

Comentarios

Para habilitar el filtrado mediante programación, use el método AutoFilter del objeto Range o el método AutoFilter de un objeto NamedRange.

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

Seguridad de .NET Framework

Vea también

Referencia

WorksheetBase Clase

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

AutoFilterMode

FilterMode

AutoFilter

ShowAllData