VBA AutoFiltro

Written by

Mel Jenkins

Reviewed by

Steve Rynearson

Translated by

Dennis Madrid

Last updated on marzo 3, 2022

En VBA, puede utilizar el Autofiltro de Excel para filtrar un rango de celdas o una tabla de Excel. Nota: Si desea aprender a utilizar un filtro avanzado en VBA, haga clic aquí: Filtro Avanzado en VBA

Crear Autofiltro en VBA

En primer lugar, vamos a demostrar cómo AutoFiltro un rango, por lo que un usuario puede filtrar los datos. Los datos que usaremos en los ejemplos están en la Imagen 1: vba autofilter data Este es el código para crear Autofiltro:

Hoja1.Range("A1:E1").AutoFilter

Para activar el Autofiltro, debemos especificar la cabecera del rango, en nuestro caso A1:E1, y utilizar el método AutoFiltro del objeto Range. Como resultado, nuestro rango de datos tiene los filtros activados:

autofiltro activado

Imagen 2. Autofiltro activado para los datos

Autofiltro con parámetros de campo y criterios

VBA también permite filtrar automáticamente un determinado campo con ciertos valores. Para ello, debe utilizar los parámetros Campo y Criterio1 del método AutoFiltro. En este ejemplo, queremos filtrar la tercera columna(Producto) sólo para el Producto A. Aquí está el código:

Sub autofiltro_con_campos()
    Hoja1.Range("A1:E1").AutoFilter Field:=3, Criteria1:="Producto A"
End Sub

En el parámetro Field, puedes poner el número de la columna del rango (no en Excel), mientras que en Criteria1 puedes poner el valor que quieres filtrar. Después de ejecutar el código, nuestra tabla tiene el siguiente aspecto:

autofiltro campos criterio

Imagen 3. Autofiltro con campo y criterios

Como puede ver, sólo las filas con el Producto A en la tercera columna se muestran en el rango de datos.

Autofiltro con valores de campo y criterios múltiples

Si desea filtrar un campo con varios valores, debe utilizar el parámetro Operador del método AutoFiltro. Para filtrar múltiples valores, necesita establecer el Operador a xlFilterValues y también poner todos los valores de Criteria en un Array. En este ejemplo, filtramos la columna Producto para el Producto A y el Producto B. Este es el código de ejemplo:

Sub autofiltro_con_varios_criterios()
    Hoja1.Range("A1:E1").AutoFilter Field:=3, _
        Criteria1:=Array("Producto A", "Producto B"), Operator:=xlFilterValues
End Sub

Cuando ejecutamos el código, obtenemos sólo las filas con el Producto A y el Producto B, como se puede ver en la Imagen 4:

autofiltro con varios criterios

Imagen 4. Autofiltro con múltiples valores de criterios

Autofiltro de rango de datos con múltiples criterios

Si quiere filtrar un campo con múltiples criterios, tiene que utilizar los parámetros Criteria1 y Criteria2, pero también el operador xlAnd. En el siguiente ejemplo, filtraremos la primera columna(Fecha) para las fechas de diciembre de 2018. Por lo tanto, tenemos dos criterios: una fecha mayor que el 01/12/18 y menor que el 31/12/18. Este es el código:

Sub autofiltro_con_multiples_criterios()
    Hoja1.Range("A1:E1").AutoFilter Field:=1, _
        Criteria1:=">=12/10/2018", Operator:=xlAnd, _
        Criteria2:="<=12/31/2018"
End Sub

Cuando ejecutamos el código, se puede ver que sólo se muestran las fechas de diciembre en el rango de datos:

autofiltro con multiples criterios

 

Imagen 5. Autofiltro con múltiples criterios para el campo

Los valores del parámetro Operador del método AutoFiltro

En la siguiente tabla puede ver todos los valores posibles del parámetro Operator del método AutoFilter y sus descripciones:

Operador Descripción
xlAnd Incluye múltiples criterios – Criterio1 y Criterio 2
xlOr Incluye uno de los criterios múltiples – Criterio1 o Criterio 2
xlTop10Items Filtra un determinado número de valores de mayor rango (número especificado en el Criterio1)
xlBottom10Items Filtra un determinado número de valores de menor rango (número especificado en el Criterio1)
xlTop10Percent Filtra un determinado porcentaje de los valores mejor clasificados (% especificado en el Criterio1)
xlBottom10Percent Filtra un determinado porcentaje de los valores más bajos (% especificado en Criteria1)
xlFilterValues Incluye múltiples valores de criterios con Array
xlFilterCellColor Filtra las celdas por colores
xlFilterFontColor Filtra las celdas por colores de fuente
xlFIlterIcon Filtra los iconos
xlFilterDynamic Filtra valores dinámicos

VBA Coding Made Easy

Stop searching for VBA code online. Learn more about AutoMacro - A VBA Code Builder that allows beginners to code procedures from scratch with minimal coding knowledge and with many time-saving features for all users! vba save as


Learn More!
vba-free-addin

Complemento de Ejemplos de Código de VBA

Acceda fácilmente a todos los ejemplos de código que se encuentran en nuestro sitio.

Simplemente navegue al menú, haga clic y el código se insertará directamente en su módulo. Complemento .xlam.

(¡No se requiere instalación!)

Descarga gratuita

Return to VBA Code Examples