Autofiltro de VBA - ¿Cómo utilizar los criterios de autofiltro de VBA para filtrar datos?

Tabla de contenido

Autofiltro de Excel VBA

AutoFilter en VBA se usa como expresión y la sintaxis para él es la siguiente Expresión. Autofiltro (Campo, Criterio 1, Operador, Criterio 2, Desplegable) todos los argumentos son opcionales. El filtro es útil para filtrar los datos particulares de los grandes datos.

Suponga que es un usuario habitual, entonces los filtros de Excel no son algo extraño para usted. Algunas de las herramientas que usamos en la hoja de trabajo también están integradas en VBA, y la opción de filtro automático es una de las herramientas importantes disponibles en VBA. Como todos sabemos, el filtro de Excel está disponible en la pestaña de datos.

Usando esta opción de filtro, podemos jugar con los datos. Si está tratando con una cantidad mínima de datos y cree que la opción de filtro automático de VBA no es realmente necesaria, puede continuar usando la opción de filtro de hoja de trabajo.

Si está tratando con una gran cantidad de datos, puede usar una opción de Autofiltro para simplificar el flujo del proceso.

Sintaxis de la función de autofiltro

AutoFilter en Excel VBA se puede usar con un objeto de rango. Como nuestras otras funciones, esta también tiene su propia sintaxis.

  • Rango: el rango es simplemente en qué rango le gustaría aplicar el filtro.
  • Campo: campo significa de qué columna del rango ha seleccionado desea filtrar los datos. Una columna se contará de izquierda a derecha.

Por ejemplo, si su rango es de A1 a D100 y desea aplicar un filtro para la columna D, su número de campo es 4 porque, en el rango seleccionado, D es la cuarta columna.

Criterio 1: en el campo, ha seleccionado lo que desea filtrar.

  • Operador: si desea aplicar más de un criterio para filtrar los datos, entonces necesitamos usar símbolos de operador. Algunos de los códigos de operador son los siguientes.

xlAnd, xlOr, xlBottom10Items, xlTop10Items, xlTop10Percent, xlBottom10Percent, xlFilterCellColor, xlFilterDynamic, xlFilterFontColor, xlFilterIcon, xlFilterValues.

Criterio 2: ¿Qué es lo segundo que desea filtrar junto con el Criterio 1?

  • Desplegable visible: ¿Desea mostrar el ícono de filtro hacia abajo en la columna filtrada? Si desea mostrar VERDADERO es el argumento, si no es FALSO, es el argumento.

¿Cómo aplicar el filtro usando VBA Autofilter? (con ejemplo)

Suponga a continuación los datos en los que está trabajando.

Ahora, al usar el código VBA, aplicaremos el filtro. Siga los pasos a continuación para aplicar el filtro.

Paso 1: Inicie el subprocedimiento dando un nombre a la macro.

Código:

Sub AutoFilter_Example1 () End Sub

Paso 2: Lo primero es en qué rango debemos aplicar el filtro. En este caso, debemos aplicar el rango desde el rango A1 hasta E25.

Código:

Sub AutoFilter_Example1 () Rango ("A1: E25") End Sub

Paso 3: Una vez que se ha seleccionado el rango, ahora aplique la opción de filtro automático.

Código:

Sub AutoFilter_Example1 () Rango ("A1: E25"). Autofiltro End Sub

No estamos seleccionando ningún valor con un autofiltro. Más bien, solo estamos aplicando el filtro en este momento.

Ejecute el código usando la tecla F5, o manualmente, insertará un filtro para el rango seleccionado.

Entonces ha aplicado un filtro a los datos. Ahora veremos cómo filtrar los datos.

Ejemplo n. ° 1: filtrar datos mediante autofiltro

Considere los mismos datos del ejemplo anterior. Ahora tenemos que filtrar el departamento "Finanzas" de la columna del departamento.

Paso 1: Después de que se haya aplicado el filtro, el primer argumento es mencionar de qué columna estamos filtrando los datos. En este caso, necesitamos filtrar los datos de la columna Departamento, por lo que el número de columna es 5.

Código:

Sub AutoFilter_Example1 () Rango ("A1: E25"). Campo de autofiltro: = 5, End Sub

Paso 2: El criterio 1 no es más que lo que queremos filtrar de la quinta columna. Por lo tanto, debemos filtrar "Finanzas".

Código:

Sub Autofiltro_Ejemplo1 () Rango ("A1: E25"). Campo de autofiltro: = 5, Criterio1: = "Finanzas" End Sub

Entonces eso es todo, ejecute este código manualmente, o mediante la tecla F5, filtrará solo "Finanzas" de la lista.

Ejemplo # 2 - Operador en Autofiltro

Hemos visto cómo filtrar el valor único. Ahora veremos cómo filtrar varios elementos. Supongamos que, junto con "Finanzas", también desea filtrar el departamento de "Ventas", para que podamos hacerlo mediante el uso de Operadores.

Paso 1: después de aplicar el primer criterio en el siguiente argumento, seleccione el operador como "xlOr".

Código:

Sub Autofiltro_Ejemplo2 () Rango ("A1: E25"). Campo de autofiltro: = 5, Criterio1: = "Finanzas", Operador: = xlO Fin Sub

Paso 2: ahora, en el Criterio 2, mencione el valor como "Ventas".

Código:

Sub Autofiltro_Ejemplo2 () Rango ("A1: E25"). Campo de autofiltro: = 5, Criterio1: = "Finanzas", Operador: = xlOr, Criterio2: = "Ventas" End Sub

Paso 3: Ok, ejecute este código usando la tecla F5 o manualmente, filtrará tanto "Finanzas" como "Ventas".

En el argumento Operador, he usado "xlOr", esto seleccionará tanto "Finanzas" como "Ventas" bajo el filtro.

Ejemplo # 3 - Filtrar números usando Autofiltro

Using the Operator symbol “XlAnd,” we can filter out numbers as well. Assume from the Overtime column you want to filter out all the values which are>1000 but <3000.

Step 1: The first thing is changing the Field from 5 to 4.

Code:

Sub AutoFilter_Example3() Range("A1:E25").AutoFilter Field:=4 End Sub

Step 2: Criteria 1 is>1000.

Code:

Sub AutoFilter_Example3() Range("A1:E25").AutoFilter Field:=4,Criteria1:=">1000", End Sub

Step 3: Here, we need to match both the criteria, so use “xlAnd” as the operator.

Code:

Sub AutoFilter_Example3() Range("A1:E25").AutoFilter Field:=4, Criteria1:=">1000", Operator:=xlAnd, End Sub

Step 4: Criteria 2 will <3000.

Code:

Sub AutoFilter_Example3() Range("A1:E25").AutoFilter Field:=4, Criteria1:=">1000", Operator:=xlAnd, Criteria2:="<3000" End Sub

Now, if you run this code manually or through the F5 key, it will filter out all the values from the Overtime column, which are>1000 but <3000.

Example #4 - Filter from Different Columns using AutoFilter

In order to filter out data from different columns, we need to use a different process. Assume you want to filter out the “Finance” department and also you want to filter out Salary numbers, which are>25000 but <40000.

You can use the below code does that.

Code:

Sub AutoFilter_Example4 () Con rango ("A1: E25"). Campo de filtro automático: = 5, Criterio1: = "Finanzas". Campo de filtro automático: = 2, Criterio1: = "> 25000", Operador: = xlAnd, Criterio2: = " <40000 "End With End Sub

Esto filtrará dos columnas.

Ejecute este código con la tecla F5, o puede ejecutarlo manualmente.

Cosas para recordar

  • Pruebe diferentes combinaciones en Operador para conocer el Autofiltro de VBA.
  • Si no está seguro de qué poner, intente utilizar la grabadora de macros.
  • Si desea filtrar los valores de texto, debe proporcionarlos entre comillas dobles.
  • Utilice la instrucción WITH para aplicar más de un filtro de columna.

Articulos interesantes...