ListObject.AutoFilter (Propiedad) (2007 System)

Actualización: noviembre 2007

Obtiene una tabla filtrada.

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

Sintaxis

Public ReadOnly Property AutoFilter As AutoFilter

Dim instance As ListObject
Dim value As AutoFilter

value = instance.AutoFilter
public AutoFilter AutoFilter { get; }

Valor de propiedad

Tipo: Microsoft.Office.Interop.Excel.AutoFilter

Objeto AutoFilter que contiene una tabla filtrada.

Ejemplos

En el ejemplo de código siguiente se agrega un ListObject a la hoja de cálculo, que corresponde a una tabla de Excel. A continuación, se rellena la tabla con dos filas de datos arbitrarios y se especifica un filtro en la tabla que filtra todas las filas cuyo primer valor de columna no es igual al valor de cadena "bb". Luego, se muestra el número de filtros activos hallados en la tabla.

Se trata de un ejemplo para una personalización en el nivel del documento.

Private Sub FilterListObject()
    ' Create ListObject control (table) and set table style
    Dim employeeTable As Microsoft.Office.Tools.Excel.ListObject = _
        Me.Controls.AddListObject(Me.Range("A1"), "employeeTable")

    ' Populate table with some data
    Dim rng As Excel.Range
    rng = employeeTable.InsertRowRange
    rng(ColumnIndex:=1).Value2 = "bb"
    rng(ColumnIndex:=2).Value2 = "b1"
    Dim row2 As Excel.ListRow = employeeTable.ListRows.AddEx( _
        AlwaysInsert:=True)
    rng = row2.Range
    rng(ColumnIndex:=1).Value2 = "aa"
    rng(ColumnIndex:=2).Value2 = "a1"

    ' Set a filter        
    employeeTable.Range.AutoFilter(1, "bb")        
    Dim activeFilterCount As Integer = 0
    For Each filter As Excel.Filter In employeeTable.AutoFilter.Filters
        If filter.On = True Then
            activeFilterCount += 1
        End If
    Next
    MessageBox.Show("There are " + activeFilterCount.ToString() _
        + " active filter(s) for table " + employeeTable.Name + ".")

End Sub
private void FilterListObject()
{
    // Create ListObject control (table) and set table style
    Microsoft.Office.Tools.Excel.ListObject employeeTable =
        this.Controls.AddListObject(this.Range["A1",missing], 
        "employeeTable");

    // Populate table with some data
    Excel.Range rng;
    rng = employeeTable.InsertRowRange;
    ((Excel.Range)(rng[missing, 1])).Value2 = "bb";            
    ((Excel.Range)(rng[missing,2])).Value2 = "b1";
    Excel.ListRow row2 = employeeTable.ListRows.AddEx(missing,true);
    rng = row2.Range;
    ((Excel.Range)(rng[missing,1])).Value2 = "aa";
    ((Excel.Range)(rng[missing,2])).Value2 = "a1";

    // Set a filter        
    employeeTable.Range.AutoFilter(1, "bb", 
        Excel.XlAutoFilterOperator.xlFilterValues,missing,missing);        
    int activeFilterCount = 0;
    foreach (Excel.Filter filter in employeeTable.AutoFilter.Filters)
    {
        if (filter.On == true)
        {
            activeFilterCount += 1;
        }
    }
    MessageBox.Show("There are " + activeFilterCount.ToString()
        + " active filter(s) for table " + employeeTable.Name + ".");

}

Permisos

Vea también

Referencia

ListObject (Clase)

ListObject (Miembros)

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