Rango de clasificación de VBA

Rango de clasificación de Excel VBA

La clasificación de un rango en VBA se realiza mediante el método range.sort, es una propiedad del método de rango con el que un usuario puede clasificar un rango en orden, los argumentos para esta función son Key1, Order1, Key2, Type, Order2, Key3 , Order3, Header, OrderCustom, MatchCase, Orientation, SortMethod, DataOption1, DataOption2, DataOption3, todos los argumentos para esta función son opcionales.

Como parte de la organización o estructuración de datos, es importante ordenar los datos y organizarlos. También hay algo similar disponible con VBA, por lo que una pregunta común sobre los nuevos estudiantes de VBA es cómo podemos hacer uso de esta opción de clasificación como parte de la automatización de VBA y este artículo lo guía a través del rango de clasificación de VBA en detalle.

Con Excel, todos estamos familiarizados con la opción del tipo que está disponible en la pestaña DATOS.

Opción de clasificación en VBA

Para usar la opción de clasificación, primero debemos decidir cuál es nuestro rango de datos y mencionar el mismo rango de datos utilizando el objeto RANGE en VBA, luego solo nosotros podemos acceder a la opción "Ordenar" en VBA. Por ejemplo, supongamos que mi rango de datos es de A1 a D10, entonces podemos proporcionar el rango de datos de la siguiente manera.

Código:

 Sub Sort_Range_Example () Rango ("A1: D10") End Sub 

Ahora ponga un punto y seleccione el método "CLASIFICAR".

Código:

 Sub Sort_Range_Example () Rango ("A1: D10"). Sort End Sub 

A continuación se muestra la sintaxis del método SORT de rango, aunque la sintaxis tiene diferentes argumentos, no los necesitamos todos para nuestra codificación VBA, por lo que solo necesitamos unos pocos elementos.

[Clave1]: En el rango de datos que estamos ordenando, necesitamos especificar qué columna debemos ordenar. Por ejemplo, en el rango de datos de A1: D10, si queremos ordenar los datos según la columna B, entonces [Key1] será Range ("B1") .

[Order1]: La columna mencionada en el argumento [Key1] debe clasificarse en qué orden. Podemos elegir dos opciones aquí "xlAscending" o "xlDescending".

Encabezado: El rango de datos mencionado tiene encabezados o no, en caso afirmativo podemos suministrar "xlYes" o de lo contrario podemos suministrar "xlNo".

Ejemplo de rango de clasificación en VBA

Tomemos el ejemplo del rango de clasificación de Excel VBA para entender esto de una mejor manera.

Puede descargar esta plantilla de Excel de rango de clasificación de VBA aquí - Plantilla de Excel de rango de clasificación de VBA

Por ejemplo, observe la siguiente estructura de datos.

Tenemos datos de A1 a E17, por lo que primero ordenaremos los datos en función de "País". Siga los pasos a continuación para escribir el código para ordenar los datos.

Paso 1: Inicie el procedimiento de macro de Excel.

Código:

 Sub Sort_Range_Example () End Sub 

Paso 2: Primero mencione el rango de datos usando el objeto RANGE .

Código:

 Sub Sort_Range_Example () Rango ("A1: E17") End Sub 

Paso 3: Ahora elija el método " Ordenar " del objeto Rango.

Código:

 Sub Sort_Range_Example () Rango ("A1: E17"). Sort End Sub 

Paso 4: Dado que estamos ordenando los datos en función de "País", nuestra columna de argumento Clave 1 será Rango ("B1").

Código:

 Sub Sort_Range_Example () Rango ("A1: E17"). Clave de clasificación1: = Rango ("B1"), End Sub 

Paso 5: Una vez que se menciona la columna requerida, debemos mencionar en qué orden necesitamos ordenar los datos y "Order1" será el orden "xlAscending" .

Código:

 Sub Sort_Range_Example () Rango ("A1: E17"). Clave de clasificación1: = Rango ("B1"), Orden1: = xl Ascendente, Fin Sub 

Paso 6: Nuestros datos tienen encabezados, por lo que el encabezado será "xlYes".

Código:

 Sub Sort_Range_Example () Rango ("A1: E17"). Ordenar clave1: = Rango ("B1"), Orden1: = xl Ascendente, Encabezado: = xl Sí Fin Sub 

Hemos mencionado todos los elementos necesarios para ordenar los datos. Ejecute el código presionando la tecla de función F5 y vea el resultado.

Salida:

Los datos se han ordenado según los nombres de los países en el orden de la A a la Z.

Ahora suponga que necesitamos ordenar los datos según el país y también debemos ordenar las " Ventas brutas " de mayor a menor. En tales casos, también necesitamos hacer uso de los argumentos Key2 y Order2.

Después de mencionar Key1 y Order1, elijamos Key2.

Código:

 Sub Sort_Range_Example () Rango ("A1: E17"). Ordenar Key1: = Rango ("B1"), Order1: = xlAscending, Key2: = End Sub 

Dado que estamos ordenando los datos en función de la columna " Ventas brutas ", el nombre de nuestra columna Clave2 será Rango ("D1").

Código:

 Sub Sort_Range_Example () Rango ("A1: E17"). Ordenar Clave1: = Rango ("B1"), Orden1: = xlAscendente, Clave2: = Rango ("D1"), Fin Sub 

Una vez que se especifica la Clave2, debemos decidir el patrón de clasificación de si es orden ascendente o descendente en el argumento Orden2, ya que estamos clasificando el valor de ventas de mayor a menor, podemos elegir el orden "xlDescendente".

Código:

 Sub Sort_Range_Example () Rango ("A1: E17"). Ordenar clave1: = Rango ("B1"), Orden1: = xlAscendente, Clave2: = Rango ("D1"), Orden2: = xlDescendente, Encabezado: = xlSí Fin Sub 

Después de eso, mencione el argumento del encabezado como "xlYes". Ahora ejecute el código y vea qué sucede.

Salida:

Anteriormente, se había ordenado basándose solo en "Por país", pero esta vez se había ordenado en función de "Por país" primero y luego también por "Ventas brutas" de mayor a menor.

Así, podemos usar el método " Ordenar " en VBA para organizar los datos.

Cosas para recordar sobre el rango de clasificación de Excel VBA

  • The sort is a method available in VBA and to access this method we need to specify what the range of cells we are going to sort.
  • If the data range includes headers then we need to choose the header option as “xlYes”, if not we can choose “xlNo”.