Como ordenar o intervalo usando VBA en Excel (6 exemplos)

  • Comparte Isto
Hugh West

Saber como ordenar o intervalo usando VBA en Excel é un aforro de tempo e esforzo nos nosos cálculos diarios. Aínda que Excel ofrece unha función de clasificación por defecto. Ao usar o método Range.Sort , accedemos a varios parámetros para ordenar un conxunto de datos con máis opcións do habitual.

Descargar libro de prácticas

Descarga este caderno de prácticas para facer exercicio mentres lees este artigo.

Ordenar intervalo en Excel.xlsm

Introdución ao rango. Instrucción de ordenación en Excel VBA

Obxectivo : Para ordenar un rango de datos de cela.

Sintaxe:

expresión .Ordenar ( Tecla1 , Orden1 , Tecla2 , Tipo , Orden2 , Clave3 , Orden3 , Encabezado , Pedido personalizado , MatchCase , Orientación , SortMethod , DataOption1 , DataOption2 , DataOption3 )

Aquí, a expresión representa un obxecto Intervalo , é dicir, unha cela, unha fila, unha columna ou unha selección de celas.

Argumentos:

Necesitamos proporcionar tres parámetros principais para o método Range.Sort . Son:

Clave – O rango de celas dunha ou varias columnas que necesitamos ordenar.

Orden – Especifique a orde de ordenación. ascendente ou descendente.

Encabezado – Declara se as columnas que se van ordenar teñen ou non cabeceira.

6 Exemplos para ordenar intervalos en Excel VBA

Eneste artigo, como conxunto de datos, utilizaremos unha lista de nomes de persoas coa súa data de nacemento e idade. Aplicaremos diferentes métodos para ordenar o conxunto de datos. Imos repasar o artigo e practicar para dominar estes métodos.

1. Ordenar o intervalo dunha única columna usando Excel VBA

Neste exemplo, ordenaremos as persoas de máis vellas ás máis novas . Sigamos os pasos para usar o Intervalo . Método de ordenación que ordenará a columna Idade en orde descendente .

Pasos:

  • Vaia á pestana Programador na cinta de Excel para faga clic en en Visual Basic

  • A continuación, escolla a opción Módulo desde a pestana Inserir para abrir un novo módulo .

Agora, poñeremos o noso código en ordena o intervalo de columnas Idade .

1.1 Columna con cabeceira

Inserta o seguinte código no editor de código visual.

9247

Preme F5 ou fai clic no botón Executar para executar o código.

Explicación:

No código anterior, poñemos-

Expresión (obxecto Rango)=Range(“D4:D11”); a columna de idade cun encabezado na cela D4 e valores en D5:D11.

Tecla = Rango(“D4”); a tecla para ordenar.

Order= xlDescendente; como queremos ordenar valores de máis grandes a máis baixos establecemos a orde de clasificación como descendente.

Encabezado =xlYes; Na seguinte captura de pantalla, podemos ver que o conxunto de datos ten un cabeceira para cada unha das columnas.

1.2 Columna sen cabeceira

Pon o seguinte código no editor de código visual.

7926

Preme F5 ou fai clic no botón Executar para executar o código.

Explicación:

No código anterior, poñemos-

Expresión (obxecto Rango)=Range(“D4 :D10”); a columna de idade sen encabezado ten valores en D4:D10.

Clave = Rango ("D4"); a tecla para ordenar.

Order= xlDescendente; como queremos ordenar valores de máis grandes a máis baixos establecemos a orde de clasificación como descendente.

Encabezado =xlNon; Na seguinte captura de pantalla, podemos ver que o conxunto de datos non ten cabeceira.

Contido relacionado: Como ordenar columnas en Excel sen mesturar datos (3 xeitos)

2. Usar código VBA para ordenar intervalos de varias columnas en Excel

Para mostrar a ordenación en varias columnas , necesitamos modificar o noso conxunto de datos un pouco. Inserimos algunhas novas filas . No conxunto de datos modificado, as filas 7, 8, e 9 teñen os mesmos valores para a data de nacemento e idades pero tres nomes diferentes . Estes nomes non están nun orde específico de ascendente ou descendente.

Neste exemplo, ordenaremos os nomes en orde ascendente . Imos executar o seguinte código no editor de Visual Basic:

4326

Explicación:

No anterior captura de pantalla, podemos ver que as idades na columna D están ordenadas en orde descendente. Engadimos dous parámetros máis no noso código anterior.

Key2: =Range(“B4”) , a clave para ordenar os nomes.

Orde2: =xlAscending , a orde para nomes curtos .

Como resultado, vemos os nomes en as filas 7, 8 e 9 agora están alfabeticamente ordenadas en orde ascendente.

Na seguinte captura de pantalla, cambiamos o valor do parámetro Order2 para ordenar os nomes en orde descendente .

Ler máis: Como ordenar varias columnas en Excel (5 enfoques rápidos)

3. Fai dobre clic na cabeceira para ordenar o intervalo de columnas en Excel VBA

A función de ordenación predeterminada de Excel non permite ordenar os valores dunha columna por faga dobre clic na cabeceira da columna . Pero usando código VBA podemos facelo posible. Ilustremos esta funcionalidade aplicando o seguinte código.

7137

Neste código, usamos o evento BeforeDoubleClick para desactivar o dobre clic habitual que consiste en iniciar o modo edición da cela. Con este eventoen execución, se famos dúas veces clic en calquera das cabeceiras da columna , ordenará os datos da columna en orden ascendente .

Ler máis: VBA para ordenar columnas en Excel (4 métodos)

Lecturas similares:

  • Como engadir un botón de clasificación en Excel (7 métodos)
  • Ordenar unha lista única en Excel (10 métodos útiles)
  • Como para usar a función de clasificación en Excel VBA (8 exemplos axeitados)
  • Ordenar duplicados en Excel (columnas e filas)
  • Ordenación aleatoria en Excel ( Fórmulas + VBA)

4. Ordenar o intervalo de columnas en función da cor de fondo usando Excel VBA

Podemos ordenar un intervalo de celas nunha columna en función da segundo a súa cor de fondo . Para facelo, necesitamos engadir un parámetro chamado SortOn que teña un valor xlSortOnCellColor . Para demostrar a ordenación, primeiro establecemos cores de fondo diferentes nas filas do noso conxunto de datos .

A continuación, no Visual Basic editor de código copie o seguinte código e prema F5 para executalo.

9667

Na seguinte captura de pantalla, podemos ver o conxunto de datos ordenado baseado na súa cor de fondo.

Explicación:

  • Neste exemplo, chamamos a folla de traballo fondo ”. Entón, no código, poñemos " fondo " como o noso nome da folla de traballo activa.
  • Establecemos B4 como a tecla e B4:D10 como intervalo . O código ordenará os datos en función da clave.
  • Como non especificamos o parámetro de cabeceira , o código execútase para o predeterminado sen cabeceira.
  • Establecemos o parámetro orde como ascendente, de xeito que clasificou os datos de menor a maior .

Ler máis: Como ordenar por cor en Excel (4 criterios)

5. Aplicar código VBA para ordenar o intervalo de columnas en función da cor da fonte

Ao aplicar código VBA, podemos ordenar o noso conxunto de datos en función da súa cor de letra . En primeiro lugar, necesitamos colorear diferentes filas para ilustrar o exemplo.

Aplica o seguinte código para ordenar o conxunto de datos en función da cor da letra.

8311

Explicación:

  • Neste exemplo, chamamos a folla de traballo " fontcolor ". Entón, no código, poñemos " fontcolor " como o noso nome da folla de traballo activa.
  • Establecemos B4 como a tecla e B4:D11 como o intervalo . O código ordenará os datos en función da clave.
  • Neste exemplo, tamén especificamos o parámetro de cabeceira como xlYes .
  • Aquí establecemos a orde o parámetro como ascendente, de xeito que clasificou os datos de menor a maior .
  • O valor do parámetro SortOn é
  • O parámetro de orientación contén o valor xlTopToBottom como é obrigatorio.
  • A cor para ordenar é en termos RGB que ten un valorde 0 a 255 .

Ler máis: Como ordenar dúas columnas en Excel para que coincidan (ambas as dúas exactas) e Partido Parcial)

6. Cambiar a orientación ao intervalo de ordenación mediante Excel VBA

Utilizando o parámetro orientación , podemos cambiar a forma en que queremos ordenar os datos. Neste exemplo, temos transposto o noso conxunto de datos para ordenar o horizontalmente .

Poñemos o seguinte código no editor de Visual Basic e prema F5 para executalo.

1589

Aquí ordenamos os datos en función da fila de idade en orde ascendente de esquerda a dereita . No código, establecemos o parámetro orientación como xlSortRows .

Contido relacionado: Como ordenar automaticamente varias columnas en Excel (3 xeitos)

Cousas para recordar

  • O parámetro SortOn que usamos para ordenar O intervalo de columnas baseado na cor de fondo e a cor da letra só pode ser usado por un obxecto de folla de traballo . Non podemos usalo cun obxecto de rango .
  • O evento BeforeDoubleClick ordena os datos só en ascendente.

Conclusión

Agora sabemos como ordenar o intervalo usando VBA en Excel. Con sorte, animaríache a usar isto con máis confianza. Calquera dúbida ou suxestión non esquezas poñelas na caixa de comentarios a continuación.

Hugh West é un adestrador e analista de Excel altamente experimentado con máis de 10 anos de experiencia na industria. É Licenciado en Contabilidade e Finanzas e Máster en Administración de Empresas. Hugh ten unha paixón polo ensino e desenvolveu un enfoque docente único que é fácil de seguir e comprender. O seu coñecemento experto de Excel axudou a miles de estudantes e profesionais de todo o mundo a mellorar as súas habilidades e a destacar nas súas carreiras. A través do seu blog, Hugh comparte os seus coñecementos co mundo, ofrecendo titoriais de Excel gratuítos e formación en liña para axudar ás persoas e ás empresas a alcanzar todo o seu potencial.