Clase Filter (Excel VBA)

La clase Filter representa un filtro para una sola columna.

Set

Para usar una variable de clase Filter, primero debe ser instanciado, por ejemplo

Dim flt as Filter
Set flt = ActiveSheet.AutoFilter.Filters(Index:=1)

Los siguientes procedimientos se pueden usar para establecer variables de clase Filter : Filters.Item y AutoFilter.Filters

For Each

A continuación, se muestra un ejemplo de cómo procesar los elementos Filter en una colección.

Dim flt As Filter
For Each flt In ActiveSheet.AutoFilter.Filters
	
Next flt

Count

Devuelve el número de objetos de la colección.

Dim lngCount As Long
lngCount = ActiveSheet.AutoFilter.Filters(1).Count

Criteria1

Devuelve el primer valor filtrado de la columna especificada en un rango filtrado.

Dim varCriteria1 As Variant
varCriteria1 = ActiveSheet.AutoFilter.Filters(1).Criteria1

Criteria2

Devuelve el segundo valor filtrado de la columna especificada en un rango filtrado.

Si intenta obtener acceso a la propiedad Criteria2 para conseguir un filtro que no utilice dos criterios, se producirá un error.

On

True si el filtro especificado está activado.

Dim booOn As Boolean
booOn = ActiveSheet.AutoFilter.Filters(1).On

Operator

Devuelve un valor XlAutoFilterOperator que representa el operador que asocia los dos criterios aplicados por el filtro especificado.

Valores posibles son xlAnd - AND lógico de Criterio1 y Criterio2, xlBottom10Items - Se muestran los elementos de menor valor (el número de elementos especificado en criterio 1), xlBottom10Percent - Se muestran los elementos de menor valor (porcentaje especificado en criterio 1), xlFilterAutomaticFontColor, xlFilterCellColor - Color de la celda, xlFilterDynamic - Filtro dinámico, xlFilterFontColor - Color de la fuente, xlFilterIcon - Icono de filtro, xlFilterNoFill, xlFilterNoIcon, xlFilterValues - Valores de filtro, xlOr - OR lógico de criterio 1 o Criterio2, xlTop10Items - Se muestran los elementos de mayor valor (el número de elementos especificado en criterio 1), xlTop10Percent - Se muestran los elementos de mayor valor (porcentaje especificado en criterio 1).
ActiveSheet.AutoFilter.Filters(1).Operator = xlAnd

Parent

Devuelve el objeto primario del objeto especificado.

Filters.Count

Devuelve un valor Long que representa el número de objetos de la colección.

Dim lngCount As Long
lngCount = ActiveSheet.AutoFilter.Filters.Count

Filters.Item

Devuelve un solo objeto de una colección.

Sintaxis : expression.Item (Index)

Index: Número de índice del objeto.

Dim fltItem As Filter
Set fltItem = ActiveSheet.AutoFilter.Filters(Index:=1)

Filters.Parent

Devuelve el objeto primario del objeto especificado.