Rango de clasificación de VBA - ¿Cómo ordenar el rango en Excel 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. Algo similar también está 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 usando 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 necesitamos ordenar. Por ejemplo, en el rango de datos de A1: D10, si queremos ordenar los datos en función de la columna B, entonces (Clave1) será Rango ("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 proporcionar "xlYes" o, de lo contrario, podemos proporcionar "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.

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"). Clave de clasificación1: = 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, escojamos Key2.

Código:

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

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

Código:

Sub Sort_Range_Example() Range("A1:E17").Sort Key1:=Range("B1"), Order1:=xlAscending,Key2:=Range("D1"), End Sub

Once the Key2 is specified, we need to decide on the sorting patter of whether it is ascending order or descending order in Order2 argument. Since we are sorting the sales value from largest to smallest, we can choose “xlDescending” order.

Code:

Sub Sort_Range_Example() Range("A1:E17").Sort Key1:=Range("B1"), Order1:=xlAscending, Key2:=Range("D1"), Order2:=xlDescending, Header:=xlYes End Sub

After that, mention the Header argument as “xlYes.” Now run the code and see what happens.

Output:

Previously it has sorted based only on “Country-wise” but this time it has sorted based on “Country-wise” first and then also on “Gross Sales” from highest to lowest.

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

  • La ordenación es un método disponible en VBA, y para acceder a este método, necesitamos especificar el rango de celdas que vamos a ordenar.
  • Si el rango de datos incluye encabezados, entonces debemos elegir la opción de encabezado como "xlYes", si no, podemos elegir "xlNo".

Articulos interesantes...