Filtro automático con múltiples criterios en VBA
Presentaremos cómo usar AutoFilter
para filtrar un rango de celdas o una tabla de Excel en VBA.
Filtro automático con múltiples criterios en VBA
Hay muchas situaciones en las que necesitamos usar filtros en Excel mientras trabajamos en un código VBA. Si queremos obtener los datos de ventas para una fecha específica, debemos usar un filtro de fecha en una columna de fecha en VBA.
VBA proporciona una solución para este problema utilizando un AutoFilter
.
Comenzaremos por comprender cómo usar el filtro automático en un rango para que un usuario pueda filtrar los datos. Tengamos algunos datos, para empezar, como se muestra a continuación.
Como se muestra a continuación, utilizaremos el método Range
de la hoja para seleccionar el rango sobre el que queremos aplicar un AutoFilter
.
# VBA
Sub test()
Sheet1.Range("A1:C1").AutoFilter
End Sub
Producción:
Tenemos que designar el encabezado del rango, que en nuestro caso es A1:C1
, y utilizar la técnica AutoFiltro
del rango de objetos para aplicar el filtro automático. Esto dará como resultado la activación de filtros para nuestra gama, como se muestra arriba.
Filtro automático con campo y criterios en VBA
VBA también nos permite filtrar campos específicos con valores particulares. Para lograr esto, tenemos que definir el campo al que queremos aplicar el filtro.
También definiremos los criterios en función de los cuales queremos aplicar un filtro. Si deseamos filtrar la segunda columna solo para Laptop
, podemos ejecutar el código como se muestra a continuación.
# VBA
Sub test()
Sheet1.Range("A1:C1").AutoFilter Field:=2, Criteria1:="Laptop"
End Sub
Producción:
Como podemos ver en el ejemplo anterior, pudimos usar el AutoFilter
con los valores deseados definiendo los valores del campo y los criterios. El resultado se muestra arriba con el filtro usando los criterios que proporcionamos en nuestro código VBA.
Filtro automático con múltiples criterios en VBA
Supongamos que queremos establecer múltiples criterios para nuestro filtro. En ese caso, podemos hacerlo usando otro operador de parámetros en AutoFilter
cuando necesitemos filtrar un campo con múltiples valores.
Podemos usar el operador xlFilterValues
y pasar los valores al parámetro Criteria
en una matriz para filtrar en función de estos valores, como se muestra a continuación.
# VBA
Sub test()
Sheet1.Range("A1:C1").AutoFilter Field:=2, Criteria1:=Array("Laptop", "iPhone"), _
Operator:=xlFilterValues
End Sub
Producción:
Como podemos ver en el ejemplo anterior, cuando ejecutamos el código, el AutoFilter
se activa con múltiples valores y muestra los resultados que queríamos.
Rango de fecha de filtro automático con múltiples criterios en VBA
Si queremos usar AutoFilter
basado en el rango de fechas, o si vamos a obtener los datos entre un rango de fechas específico, tenemos que usar múltiples parámetros de Criterios
con un operador xlAnd
.
Veamos un ejemplo y agreguemos más datos a nuestra hoja de muestra con las fechas a continuación.
Como puede ver en los datos anteriores, hemos agregado una nueva columna con fechas. Como se muestra a continuación, usaremos estas fechas para filtrar los datos entre el 20 y el 25 de mayo.
#VBA
Sub test()
Sheet1.Range("A1:D1").AutoFilter Field:=1, Criteria1:=">=05/20/2022", Operator:=xlAnd, Criteria2:="<=05/25/2022", Operator:=xlFilterValues
End Sub
Producción:
Como podemos ver en el ejemplo anterior, podemos filtrar fácilmente los datos en el rango de fechas proporcionando dos criterios de fechas y usando el parámetro Operador
con el valor xlAnd
.
A continuación se describen algunos parámetros del Operador
y su descripción.
- El operador
xlAnd
puede filtrar con múltiples criterios comoCriteria1
yCriteria2
. - El operador
xlOr
puede filtrar con un criterio u otro. - El operador
xlTop10Items
nos ayudará a filtrar el número particular de los valores mejor clasificados de los criterios. - El operador
xlBottom10Items
nos ayudará a filtrar el número particular de los valores clasificados más bajos de los criterios. - El operador
xlTop10Percent
nos ayudará a filtrar el porcentaje particular de los valores mejor clasificados de los criterios. - El operador
xlBottom10Percent
nos ayudará a filtrar el porcentaje particular de los valores clasificados más bajos de los criterios. - El operador
xlFilterValues
nos ayudará a filtrar los criterios con múltiples valores. - El operador
xlFilterCellColor
nos ayudará a filtrar los criterios en función de los colores de las celdas. - El operador
xlFilterFontColor
nos ayudará a filtrar los criterios en función de los colores de fuente. - El operador
xlFIlterIcon
nos ayudará a filtrar los criterios en función de los iconos de fuentes. - El operador
xlFilterDynamic
nos ayudará a filtrar los valores dinámicos.