¿Cómo aplicar y eliminar el filtro de los datos usando VBA?

Tabla de contenido

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.

Articulos interesantes...