Táboa de contidos
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.
|
Encabezado | Opcional | XlYesNoGuess | Especifica se a primeira fila contén cabeceiras ou non .
|
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.