Ordenar rango de datos por columna específica en Excel VBA
- Ordenar rango de datos por columna específica en VBA
-
Ordene el rango de datos por columna específica usando el método
Range.Sort()
en VBA - Ordene el rango de datos por columna específica grabando una macro en VBA
- Ordene el rango de datos por columna específica usando la clasificación de un solo nivel en VBA
- Ordene el rango de datos por columna específica usando la clasificación de niveles múltiples en VBA
- Ordenar rango de datos por columna específica usando diferentes parámetros en VBA
Presentaremos diferentes métodos para ordenar un rango de datos por columna específica en Excel VBA.
Ordenar rango de datos por columna específica en VBA
Excel tiene funciones integradas para ordenar los datos disponibles en la cinta y el cuadro de diálogo de ordenación. Sin embargo, es posible que necesitemos usar VBA para ordenar datos siempre que se requiera ordenar datos en la codificación.
Podemos ahorrar mucho tiempo y energía creando una macro para el proceso de clasificación de datos dados. Macro nos permite hacer todo el proceso con un solo clic.
La clasificación de datos se puede realizar utilizando múltiples técnicas, y podemos elegir un método adecuado para nuestros datos. Discutiremos estos métodos uno por uno en las siguientes secciones.
Ordene el rango de datos por columna específica usando el método Range.Sort()
en VBA
El método Range.Sort()
puede ordenar rápidamente los datos en VBA. Sin embargo, se deben definir algunos parámetros adicionales al ordenar los datos a través de VBA.
Estos parámetros incluyen Clave
, Orden
y Encabezado
.
Clave
: especifica la columna que queremos ordenar.Orden
- especifica el tipo de orden: descendente o ascendente.Encabezado
: le dice a VBA si los datos delEncabezado
están incluidos en el proceso de clasificación o no.
A continuación se muestra un código con el rango B1
a B13
, utilizando la columna B1
, en orden ascendente y un encabezado para los datos utilizando el código VBA.
Ejemplo:
# VBA
Sub usingRangeSort()
Range("B1:B13").Sort Key1:=Range("B1"), _
Order1:=xlAscending, _
Header:=xlYes
End Sub
Producción:
Como puede ver en el ejemplo, podemos ordenar un rango usando el método Range.Sort()
.
Ordene el rango de datos por columna específica grabando una macro en VBA
Grabar una macro para la clasificación de VBA puede ser complicado ya que necesita involucrar todos los parámetros en la clasificación de datos, pero puede ser útil ya que nos muestra cómo el código hará el trabajo. Este método aplicado en una hoja de cálculo de Excel puede verse como se muestra a continuación.
Ejemplo:
# vba
Sub savedMacro()
Range("A1:B13").Sort Key1:=Range("A1"), _
Order1:=xlAscending, _
Header:=xlYes
End Sub
Producción:
Como puede ver en este ejemplo, podemos guardar la macro y usarla en diferentes hojas cuando lo deseemos. Un código puede someterse fácilmente a un proceso de copiar y pegar que se aplica en varias hojas de cálculo de Excel y, por lo tanto, puede acelerar el proceso de datos masivos a través de la codificación VBA.
Ordene el rango de datos por columna específica usando la clasificación de un solo nivel en VBA
Este proceso es muy fácil ya que no necesita incluir los parámetros uno por uno, sino que utiliza los parámetros predeterminados de forma independiente. Un usuario debe establecer los parámetros de todas las hojas de trabajo que involucran por defecto.
A continuación se muestra un ejemplo del método.
# vba
Sub SortWithSingleLevel()
Worksheets("Sheet1").Sort.SortFields.Clear
Range("A1:B13").Sort Key1:=Range("A1"), Header:=xlYes
End Sub
Producción:
Como puede ver en el ejemplo anterior, podemos ordenar los datos de la hoja usando el rango con clasificación de un solo nivel. Ahora, imaginemos si queremos hacer lo mismo para la clasificación de múltiples niveles.
Ordene el rango de datos por columna específica usando la clasificación de niveles múltiples en VBA
Podemos involucrar más de un nivel mientras ordenamos los datos a través del código VBA.
Por ejemplo, si vamos a ejecutar un código que ordene primero Clave1
y luego Clave2
. Involucramos los dos pedidos, Order1
y Order2
, es decir, Order1
está asociado con Key1
y Order2
está asociado con Key2
.
El código funciona como se muestra a continuación.
# vba
Sub SortWithMultiLevel()
Worksheets("Sheet1").Sort.SortFields.Clear
Range("A1:B13").Sort Key1:=Range("A1"), Key2:=Range("B1"), Header:=xlYes, _
Order1:=xlAscending, Order2:=xlDescending
End Sub
Producción:
Como puede ver en el ejemplo anterior, podemos ordenar nuestro rango con una clasificación de niveles múltiples usando varias claves y órdenes.
Ordenar rango de datos por columna específica usando diferentes parámetros en VBA
Ahora, discutiremos diferentes parámetros que se pueden usar para ordenar en VBA.
Ordenar datos con el parámetro SortOn
en VBA
Esto define el parámetro sobre el que queremos que se realice el proceso de clasificación de la fecha. El parámetro puede ser valores de celda, color de fuente o color de celda (fondo).
La configuración predeterminada es el valor de la celda, y funciona como se muestra a continuación.
# vba
SortOn:= xlSortOnValues
Ordenar datos con el parámetro Orden
en VBA
El orden se puede elegir como orden ascendente o descendente (como se discutió en el artículo anterior). Sin embargo, la configuración predeterminada es de orden ascendente y la sintaxis es la que se muestra a continuación.
# vba
Order:= xlAscending
Ordenar datos con el parámetro DataOption
en VBA
Este parámetro define cómo un código VBA ordena los datos numéricos y de texto. Podemos ordenar números y textos por separado usando este parámetro. La sintaxis que se utiliza es la que se muestra a continuación.
# vba
DataOption:= xlSortNormal
Ordenar datos con el parámetro Header
en VBA
Describe si el encabezado de los datos debe incluirse en el proceso de clasificación o no. La sintaxis de clasificación de encabezados
se muestra a continuación.
# vba
Header:= xlYes
Si no hay encabezado y queremos comenzar a ordenar desde el principio, podemos usar el siguiente código a continuación.
# vba
Header:= xlNo
Ordenar datos con el parámetro MatchCase
en VBA
La clasificación MatchCase
define si el proceso distingue entre mayúsculas y minúsculas o no. La sintaxis de clasificación MatchCase
se muestra a continuación.
# vba
MatchCase:= False
Ordenar datos con el parámetro Orientación
en VBA
El parámetro define la orientación de la clasificación de arriba hacia abajo oa través de las columnas. La sintaxis predeterminada se muestra a continuación.
# vba
Orientation:= xlTopToBottom