Filtro de Excel VBA
La herramienta de filtro VBA se usa para clasificar o buscar los datos específicos deseados, la función Autofilter se usa como una función de hoja de trabajo, sin embargo, esta función tiene otros argumentos que son opcionales y el único argumento obligatorio es la expresión que cubre el rango, por ejemplo hojas de trabajo ("Hoja1"). Rango ("A1"). Autofilter aplicará el filtro en la primera columna.
El filtro en VBA funciona de la misma manera que en la hoja de trabajo. Lo único diferente es que podemos automatizar la tarea rutinaria de filtrar los datos mediante la codificación.

AutoFilter es una función que incluye muchos valores de sintaxis. A continuación se muestran los parámetros que intervienen en la función Autofiltro.

- El rango es lo primero que necesitamos proporcionar para usar la opción "Autofiltro". Esto es simplemente para qué rango de celdas necesitamos aplicar el filtro, por ejemplo, Rango (“A1: D50”).
- El campo es el primer argumento de la función. Una vez que se selecciona el rango de celdas a través del objeto VBA RANGE, debemos mencionar para qué columna del rango queremos aplicar el filtro.
- El criterio 1 no es más que en el campo seleccionado , qué valor desea filtrar.
- El operador se utiliza en caso de que desee utilizar el argumento Criterio 2 . En esta opción, podemos usar las siguientes opciones.
xlAnd, xlOr, xlBottom10Items, xlTop10Items, xlTop10Percent, xlBottom10Percent, xlFilterCellColor, xlFilterDynamic, xlFilterFontColor, xlFilterIcon, xlFilterValues - El menú desplegable visible indica si se muestra un símbolo de filtro en la columna de filtro aplicado o no. Si desea mostrar, puede proporcionar el argumento como VERDADERO o FALSO.
Ejemplos para filtrar datos usando VBA
Ejemplo n. ° 1: aplicar o eliminar filtro a los datos
En caso de que desee aplicar la opción de filtro a los datos, entonces podemos desactivar y activar esta opción. Por ejemplo, mire la siguiente imagen de datos.

Paso 1: rango de datos de suministro
Para activar la opción de filtro primero, necesitamos proporcionar cuál es nuestro rango de datos. En la imagen de arriba, nuestros datos se distribuyen desde A1 hasta G31, así que proporcione este rango usando un objeto RANGE.
Código:
Sub Filter_Example () Range ("A1: G31") End Sub

Paso 2: luego acceda a la función Autofiltro
Ahora acceda a la función Autofiltro para este rango.
Código:
Sub Filter_Example () Range ("A1: G31"). Autofilter End Sub

Paso 3: ejecuta el código para habilitar el filtro
Eso es todo. Ejecute este código para habilitar el filtro automático.
Este código funciona como una palanca, y si no se aplica el filtro, se aplicará. Si ya se ha aplicado, se eliminará.
Ejemplo n. ° 2 - Filtrar valores específicos
Ahora veremos cómo utilizar los parámetros de la opción Autofiltro. Toma los mismos datos que arriba. Por ejemplo, ahora necesitamos filtrar todos los nombres de género "Masculinos".
Paso 1: seleccione el rango y abra la función de autofiltro

Step 2: Then Select Field
In the first argument of the function i.e., Field, we need to mention the column reference that we would like to filter out. In this example, we need to filter only “Male” candidates, which is column “C,” so column number is 3.

Step 3: Now Mention Criteria
Now for this supplied Field, we need to mention the Criteria 1 i.e., what value we need to filter in the mentioned Field. We need to filter “Male” from this column.
Code:
Sub Filter_Example() Range("A1:G31").AutoFilter Field:=3, Criteria1:="Male" End Sub

Step 4: And run the code
Ok, that’s all. This code will filter only “Male” candidates now.

Example #3 - Usage of OPERATOR Argument
When you want to filter out more than one value from the column, we need to use the “Operator” argument. For example, from the column “Major,” we need to filter only “Math & Politics,” then we need to use this argument.
Step 1: Select Range and Autofilter Field
First, supply the Range of cells and fields.
Code:
Sub Filter_Example() Range("A1:G31").AutoFilter Field:=5, End Sub

Step 2: Enter Criteria 1 as Math
For the mentioned filed, we need to supply Criteria 1 as “Math.”
Code:
Sub Filter_Example() Range("A1:G31").AutoFilter Field:=5, Criteria1:="Math", End Sub

Step 3: Use Operator xl
Since we need to filter one more value from the same column or field, use the operator symbol as “xlOr.”
Code:
Sub Filter_Example() Range("A1:G31").AutoFilter Field:=5, Criteria1:="Math", Operator:=xlOr End Sub

Step 4: Enter Criteria 2 as Politics
And for Criteria 2 argument mention the value as “Politics.”
Code:
Sub Filter_Example() Range("A1:G31").AutoFilter Field:=5, Criteria1:="Math", Operator:=xlOr, Criteria2:="Politics" End Sub

This will filter out both “Math” & “Politics” from column “Major.”

Example #4 - Filter Numbers with Operator Symbols
For example, if you want to filter numbers with, then we can filter a specific number as well as numbers above, below, or between specific values and range of values.
For example, from the age column, if you want to filter persons aged more than 30, then we can write the code like below.
Code:
Sub Filter_Example() Range("A1:G31").AutoFilter Field:=7, Criteria1:=">30" End Sub
This will filter all the values that are more than 30.

Now, if you want to filter values between 21 and 31, then we can use the below code.
Code:
Sub Filter_Example() Range("A1:G31").AutoFilter Field:=7, Criteria1:=">21", Operator:=xlAnd, Criteria2:="<31" End Sub
This will filter persons aged between 21 and 30.

Example #5 - Apply Filter for More Than One Column
If you want to filter values from more than one column criteria, then we need to use a slightly different technique.
If you want to filter “Student Status” as “Graduate” and “Country” as “US,” then first, we need to supply the RANGE of cells under the “WITH” statement.
Code:
Sub Filter_Example() With Range("A1:G31") End With End Sub

Ahora, dentro de la declaración WITH, proporcione los primeros criterios que se filtrarán.
Código:
Sub Filter_Example () With Range ("A1: G31") .AutoFilter Field: = 4, Criteria1: = "Graduate" End With End Sub

Ahora, en la siguiente línea, haga lo mismo para "País" cambiando "Campo" a 6 y Criterios a "EE. UU."
Código:
Sub Filter_Example () With Range ("A1: G31") .AutoFilter Field: = 4, Criteria1: = "Graduate" .AutoFilter Field: = 6, Criteria1: = "US" End With End Sub

Ahora, esto filtrará "Graduado" solo para el país "EE. UU."

Cosas para recordar
- Lo primero es lo primero que se aplicará solo para el rango mencionado de filtro de celdas.
- El campo no es nada en qué columna desea filtrar los datos.
- En caso de filtrar valores de más de una columna, utilice With.