VBA para ordenar columnas en Excel (4 métodos)

  • Comparte Isto
Hugh West

Para ordenar en Excel con VBA , cómpre aplicar o método Range.Sort . Neste artigo, mostrarémosche como ordenar a columna en Excel co método Range.Sort de VBA .

Descargar o libro de traballo

Podes descargar o libro de exercicios de Excel de práctica gratuíta desde aquí.

Ordenar columna con VBA.xlsm

Rango. Método de ordenación en Excel VBA

Rango.Método de clasificación en VBA ordena un intervalo de valores en Excel. Aquí Intervalo é unha variable de obxecto que especifica o intervalo de celas que queremos ordenar en orde ascendente ou descendente.

Abaixo amósanse os parámetros que precisa saber sobre mentres se traballa con este método.

Parámetro Requirido/Opcional Tipo de datos Descrición
Clave Opcional Variante Especifica o intervalo ou a columna cuxos valores deben ser ordenados.
Orden Opcional XlOrden de ordenación Especifica a orde na que se realizará a ordenación.
  • xlAscending = Ordenar en orde ascendente.
  • xlDescending = Ordenar en orde descendente.
Encabezado Opcional XlYesNoGuess Especifica se a primeira fila contén cabeceiras ou non .
  • xlNo = Cando a columna non ten cabeceiras; Valor predeterminado.
  • xlSi = Candoas columnas teñen cabeceiras.
  • xlGuess = Para que Excel determine as cabeceiras.

4 Métodos de implementación de VBA para ordenar columnas en Excel

Nesta sección, saberá como ordenar unha única columna con e sen cabeceira , múltiples columnas con e sen cabeceiras e como ordenar só facendo dobre clic na cabeceira dunha columna en Excel.

1. Incrustar VBA para ordenar unha única columna sen cabeceira en Excel

Se queres ordenar unha única columna na túa folla de cálculo de Excel co código VBA , siga o seguinte pasos a continuación.

Esta é a nosa columna que ordenaremos co código VBA .

Pasos:

  • Preme Alt + F11 no teu teclado ou vai á pestana Desenvolvedor -> Visual Basic para abrir Editor de Visual Basic .

  • Na xanela do código emerxente, desde a barra de menú , fai clic en Inserir -> Módulo .

  • Copia o seguinte código e pégao na xanela do código.
8960

O teu código agora está listo para executarse.

Aquí,

  • Key1:=Range(“B5”) → Especificado B5 para que o código saiba que columna ordenar.
  • Order1:=xlAscending → Especificou a orde como xlAscending para ordenar a columna en orde ascendente. Se queres ordenar a columna en orde descendente, escribe xlDescending .
  • Encabezado:= xlNo →Como a nosa columna non ten ningún encabezado, especificámolo coa opción xlNo .

  • Preme F5 no teu teclado ou na barra de menús selecciona Executar -> Executar Sub/UserForm . Tamén podes facer clic na icona de reprodución pequena da barra do submenú para executar a macro.

Verás que o teu a columna está agora ordenada en orde ascendente .

Nótese que aquí definimos manualmente o intervalo de datos como Intervalo(“B5:B15” ) .

Se queres cambiar os datos engadindo ou eliminando valores, podes implementar o seguinte código que se actualiza automaticamente en función das celas do conxunto de datos.

1369

Ten en conta que no seu lugar de definir o intervalo manualmente mediante Range(“B5:B15”) , escribimos, Range( “B5”, Range(“B5”)). Fin(xlAbaixo)) .

Isto ordenará a columna en función da última cela enchada consecutivamente nela. Se hai celas en branco, os datos só se considerarán ata a primeira cela en branco.

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

2. Inserir macro VBA para ordenar unha única columna con cabeceira

Na sección anterior, tiñamos un conxunto de datos dunha soa columna sen cabeceira, pero agora temos a columna cunha cabeceira .

Esta vez aprenderemos a ordenala con macro VBA .

Pasos:

  • Do mesmo xeito que antes, abra o Editor de Visual Basic desde a pestana Desenvolvedor e Insira un Módulo na xanela do código.
  • Na xanela do código, copie o seguinte código e pégueo.
8548

O teu código xa está listo para executarse.

Aquí,

  • Key1:=Range(“ B5”) → Especificouse B5 para que o código saiba que columna ordenar.
  • Order1:=xlDescendente → Esta vez ordenaremos a columna en orde descendente especificou a orde como xlDescending .
  • Encabezado:= xlYes → Como a nosa columna ten unha cabeceira esta vez, así que o especificamos co xlYes opción.

  • Executa este código e obterás a columna coa cabeceira ordenada en orde descendente .

Ler máis: Como ordenar ListBox con VBA en Excel (Unha guía completa)

Lecturas similares:

  • Como ordenar o enderezo IP en Excel (6 métodos)
  • [Resolvedo!] A clasificación de Excel non funciona (2 solucións)
  • Como engadir un botón de clasificación en Excel (7 métodos)
  • Ordenar rango e Usando VBA en Excel (6 exemplos)
  • Como ordenar por nome en Excel (3 exemplos)

3. Macro VBA para ordenar varias columnas con ou sen cabeceira

Tamén pode ordenar varias columnas no seu conxunto de datos con código VBA.

Pasos:

  • Como se mostra anteriormente, abra o Editor de Visual Basic desde a pestana Desenvolvedor e Inserir a Módulo na xanela do código.
  • Na xanela do código, copie o seguinte código e pégueo.
4775

O seu código xa está listo para executarse.

Aquí,

.SortFields.Add Key:=Range ("B4"), Order:=xlAscending

.SortFields.Add Key:=Range ("C4") ”), Order:=xlAscending

Por estas dúas liñas, estamos definindo Cela B4 e C4 para ordenar as dúas columnas asociadas con en orden ascendente .

Como temos cabeceiras no noso conxunto de datos, especificamos Cabeceira = xlSi , se non, escribiriamos Cabeceira = xlNo dentro do código.

  • Executa este código e obterás as columnas coa cabeceira ordenadas en orde ascendente .

4. Macro para ordenar os datos facendo dobre clic na cabeceira en Excel

Se queres ordenar os datos con facilidade con só facendo dobre clic na cabeceira , podes facelo con Código VBA.

Pasos:

  • Fai clic co botón dereito do rato na pestana da folla .
  • Na lista de opcións que aparece, fai clic en Ver código .
  • Aparecerá a xanela do código, copia o seguinte código e pégao alí.
2778
  • Garda o código.

  • Agora volve á folla de traballo de interese e se faga dobre clic nas cabeceiras verá que as columnas se están reorganizando.

Ler máis: Como ordenar e filtrar datos en Excel (Unha directriz completa)

Cousas para recordar

  • Podes crear un intervalo con nome e usalo cando pases un intervalo de referencias de cela dentro do Método de clasificación . Por exemplo, se queres ordenar o intervalo A1:A10 , en lugar de pasalo cada vez dentro do código, podes crear un intervalo con nome, como " SortRange ” e utilízao co método Range.Sort como Range(“SortRange”) .
  • Se non está seguro de se o seu conxunto de datos ten cabeceiras ou non, podes deixar que o sistema o determine usando o parámetro xlGuess .

Conclusión

Este artigo mostrouche como ordena a columna en Excel VBA . Espero que este artigo che resultou moi beneficioso. Non dubides en preguntar se tes algunha dúbida sobre o tema.

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.