¿cómo ordenar el rango en vba?

Para ordenar un rango de celdas usando VBA, debe usar el método «SORT» que le permite configurar una sola clave (columna) o varias claves (para varias columnas) para ordenar. También puede establecer el orden (ascendente o descendente) que desea ordenar y puede especificar si tiene un encabezado o no.

Ordenar un rango con VBA

  1. Utilice el objeto de rango para especificar el rango que desea ordenar.
  2. Escriba un punto e ingrese el método de clasificación.
  3. Especifique la clave que desea utilizar para ordenar.
  4. Establezca el orden de clasificación.
  5. Menciona si tienes encabezado o no.
ordenar un rango por vba
 Range("A1:A11").Sort Key1:=Range("A1"), _ Order1:=xlAscending, _ Header:=xlYes

En el código anterior utilizó el rango A1:A11, y en el método de clasificación utilizó el orden ascendente, mencionó que tiene un encabezado en el rango.

Comprender el método de clasificación de VBA

Antes de escribir una macro para ordenar un rango, es mejor profundizar en el método de clasificación y comprender sus argumentos.

 Sort (Key1, Order1, Key2, Type, Order2, Key3, Order3, _ Header, OrderCustom, MatchCase, Orientation, SortMethod, _ DataOption1, DataOption2, DataOption3)

Estos son los argumentos más importantes que utilizará en la vida real.

  • Clave : aquí debe definir una celda cuya columna desea utilizar como base de clasificación.
  • Orden : Orden en el que desea ordenar la columna (ascendente/descendente).
  • Encabezado : una constante para especificar si tiene o no un encabezado o si desea que VBA lo adivine.

Ordenar en orden descendente

En el siguiente código, he utilizado ‘xlDescending’ para ordenar la columna de monto en orden descendente.

Ordenar en orden descendente
 Range("A1:A13").Sort Key1:=Range("A1"), _ Order1:=xlDescending, _ Orientation:=xlSortColumns

Usar múltiples columnas (claves) para ordenar

También puede utilizar varias columnas para ordenar un rango. Tomemos un ejemplo de la siguiente tabla donde tiene varias entradas con nombres de empleados y ciudades, y necesita ordenarlas por nombre y ciudad.

Utilice varias columnas para ordenar

Aquí está el código que necesitas usar:

códigos para múltiples columnas
 Range("A1:C13").Sort Key1:=Range("A1"), _ Order1:=xlAscending, _ Key2:=Range("B1"), _ Order1:=xlAscending, _ Header:=xlYes

Como puede ver en el código, tiene la clave1 y la clave2. En la clave1 tienes la columna con el nombre del empleado y en la clave2 tienes la columna de ciudad. Para ambas columnas, el orden de clasificación es ascendente y los encabezados están ahí.

Nota: Puede usar esto como cualquier columna que desee usar como base para ordenar usando claves y orden.

Cambiando la orientación del destino

Cuando normalmente ordena datos en Excel, de forma predeterminada puede ordenarlos usando columnas. Pero desde las opciones de clasificación, puede cambiar la orientación de clasificación de izquierda a derecha en lugar de de arriba a abajo.

orientación del destino

De manera similar, tiene un argumento en el método de clasificación para cambiar la orientación ( enlace ).

método para ordenar la orientación
 Range("A1:C13").Sort Key1:=Range("A1"), _ Order1:=xlAscending, _ Orientation:=xlSortRows

Añadir un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *