Autofiltro de VBA

En VBA, puede crear Autofiltro para filtrar un rango de celdas o una tabla de Excel. En este tutorial, aprenderá a crear Autofiltro para una o varias columnas y para varias condiciones.

Si desea aprender a usar un filtro avanzado en VBA, haga clic aquí: Filtro avanzado de VBA

Creando Autofiltro en VBA

Primero, verá cómo crear Autofiltro en un rango, por lo que un usuario puede filtrar los datos. Los datos que usaremos en los ejemplos están en la Imagen 1:

Imagen 1. Ejemplos de datos para autofiltro

Aquí está el código para crear Autofiltro:

1 Sheet1.Range ("A1: E1"). Autofiltro

Para habilitar Autofiltro, necesitamos especificar el encabezado del rango, en nuestro caso A1: E1, y usar el Autofiltro método del objeto Distancia. Como resultado, nuestro rango de datos tiene filtros activados:

Imagen 2. Autofiltro habilitado para los datos

Autofiltro con parámetros de campo y criterios

VBA también le permite filtrar automáticamente un determinado campo con ciertos valores.

Para hacer esto, debes usar parámetros Campo y Criterio1 del método Autofiltro. En este ejemplo, queremos filtrar la tercera columna (Producto) por Producto A solamente. Aquí está el código:

12 Sheet1.Range ("A1: E1"). Campo de autofiltro: = 3, _Criteria1: = "Producto A"

En el Campo parámetro, puede establecer el número de la columna en el rango (no en Excel), mientras que en Criterio1 puede poner el valor que desea filtrar. Después de ejecutar el código, nuestra tabla se ve así:

Imagen 3. Autofiltro con campo y criterios

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

Autofiltro con campos y valores de criterios múltiples

Si desea filtrar un campo con varios valores, debe usar el parámetro Operador de El Autofiltro método. Para filtrar varios valores, debe configurar Operador para xlFilterValues y también para poner todos los valores de Criterios en una matriz. En este ejemplo, filtramos el Producto columna para Producto A y Producto B. Aquí está el ejemplo de código:

123 Sheet1.Range ("A1: E1"). Campo de autofiltro: = 3, _Criterio1: = Matriz ("Producto A", "Producto B"), _Operador: = xlFilterValues

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

Imagen 4. Autofiltro con varios valores de criterios

Rango de datos de autofiltro con varios criterios

Si desea filtrar un campo con varios criterios, debe usar Criterio1 y Criterios2 parámetros, sino también Operador xlAnd.

En el siguiente ejemplo, filtraremos la primera columna (Fecha) para fechas en diciembre de 2022. Por lo tanto, tenemos dos criterios: una fecha mayor que 12/01/18 y menor que 12/31/18. Este es el código:

1234 Sheet1.Range ("A1: E1"). Campo de autofiltro: = 1, _Criterio1: = "> = 12/01/2018", _Operador: = xlAnd, _Criterio2: = "<= 31/12/2018"

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

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

Los valores de los parámetros del operador del método AutoFilter

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

Operador Descripción
xlAnd Incluye varios criterios: Criteria1 y Criteria 2
xlOr Incluye uno de los múltiples criterios: Criteria1 o Criteria 2
xlTop10Items Filtra un cierto número de valores de mayor rango (número especificado en Criterios1)
xlBottom10Items Filtra un cierto número de valores de clasificación más baja (número especificado en Criterios1)
xlTop10Percent Filtra un cierto porcentaje de los valores de mayor rango (% especificado en Criterios1)
xlBottom10Percent Filtra un cierto porcentaje de los valores clasificados más bajos (% especificado en Criterios1)
xlFilterValues Incluye múltiples valores de criterios con Array
xlFilterCellColor Filtra celdas para colores
xlFilterFontColor Filtra celdas para colores de fuente
xlFIlterIcon Iconos de filtros
xlFilterDynamic Filtrar valores dinámicos

Va a ayudar al desarrollo del sitio, compartir la página con sus amigos

wave wave wave wave wave