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 |