VBA Sort Range

Faixa de classificação do Excel VBA

A classificação de um intervalo no VBA é feita pelo método range.sort, é uma propriedade do método range com o qual um usuário pode classificar um intervalo em ordem, os argumentos para esta função são Chave1, Ordem1, Chave2, Tipo, Ordem2, Chave3 , Order3, Header, OrderCustom, MatchCase, Orientation, SortMethod, DataOption1, DataOption2, DataOption3, todos os argumentos para esta função são opcionais.

Como parte da organização ou estruturação de dados, é importante classificar os dados e torná-los organizados. Uma coisa semelhante também está disponível com o VBA, portanto, a dúvida comum sobre os novos aprendizes do VBA é como podemos usar essa opção de classificação como parte da automação do VBA e este artigo o orienta através da faixa de classificação VBA em detalhes.

Com o Excel, todos nós estamos familiarizados com a opção de classificação que está disponível na guia DADOS.

Opção de classificação em VBA

Para usar a opção de classificação, primeiro precisamos decidir qual é o nosso intervalo de dados e mencionar o mesmo intervalo de dados usando o objeto RANGE no VBA, então apenas podemos acessar a opção “Classificar” no VBA. Por exemplo, suponha que meu intervalo de dados seja de A1 a D10, então podemos fornecer o intervalo de dados como segue.

Código:

 Sub Sort_Range_Example () Range ("A1: D10") End Sub 

Agora coloque um ponto e selecione o método “SORT”.

Código:

 Sub Sort_Range_Example () Range ("A1: D10"). Sort End Sub 

Abaixo está a sintaxe do método SORT de intervalo, embora a sintaxe tenha argumentos diferentes, não precisamos de todos eles para nossa codificação VBA, portanto, precisamos apenas de alguns elementos.

[Key1]: No intervalo de dados que estamos classificando, precisamos especificar qual coluna precisamos classificar. Por exemplo, no intervalo de dados de A1: D10, se quisermos classificar os dados com base na coluna B, então [Chave1] será Intervalo (“B1”) .

[Ordem1]: A coluna mencionada no argumento [Chave1] deve ser classificada em que ordem. Podemos escolher duas opções aqui “xlAscending” ou “xlDescending”.

Cabeçalho: O intervalo de dados mencionado possui cabeçalhos ou não, se sim podemos fornecer “xlSim” ou então podemos fornecer “xlNão”.

Exemplo de intervalo de classificação em VBA

Vamos pegar o exemplo do intervalo de classificação do Excel VBA para entender isso de uma maneira melhor.

Você pode baixar este modelo Excel de intervalo de classificação VBA aqui - Modelo Excel de intervalo de classificação VBA

Por exemplo, observe a estrutura de dados abaixo.

Temos dados de A1 a E17, então primeiro classificaremos os dados com base no “país”. Siga as etapas abaixo para escrever o código para classificar os dados.

Etapa 1: inicie o procedimento de macro do Excel.

Código:

 Sub Sort_Range_Example () End Sub 

Etapa 2: primeiro mencione o intervalo de dados usando o objeto RANGE .

Código:

 Sub Sort_Range_Example () Range ("A1: E17") End Sub 

Passo 3: Agora escolha o método “ Sort ” do objeto Range.

Código:

 Sub Sort_Range_Example () Range ("A1: E17"). Sort End Sub 

Etapa 4: como estamos classificando os dados com base no “país”, nossa coluna de argumento da Chave 1 será Faixa (“B1”).

Código:

 Sub Sort_Range_Example () Range ("A1: E17"). Sort Key1: = Range ("B1"), End Sub 

Etapa 5: Uma vez que a coluna necessária é mencionada, precisamos mencionar em que ordem precisamos classificar os dados e “Ordem1” será a ordem “xlAscending” .

Código:

 Sub Sort_Range_Example () Range ("A1: E17"). Sort Key1: = Range ("B1"), Order1: = xlAscending, End Sub 

Etapa 6: Nossos dados têm cabeçalhos, portanto, o cabeçalho será “xlSim”.

Código:

 Sub Sort_Range_Example () Range ("A1: E17"). Sort Key1: = Range ("B1"), Order1: = xlAscending, Header: = xlYes End Sub 

Mencionamos todos os elementos necessários para classificar os dados. Execute o código pressionando a tecla e função F5 e veja o resultado.

Resultado:

Os dados foram classificados com base nos nomes dos países na ordem de A a Z.

Agora, suponha que precisamos classificar os dados com base no país e também precisamos classificar as “ Vendas Brutas ” da mais alta para a mais baixa. Nesses casos, precisamos usar os argumentos Chave2 e Ordem2 também.

Depois de mencionar Key1 e Order1, vamos escolher Key2.

Código:

 Sub Sort_Range_Example () Range ("A1: E17"). Sort Key1: = Range ("B1"), Order1: = xlAscending, Key2: = End Sub 

Como estamos classificando os dados com base na coluna “ Vendas Brutas ”, nosso nome de coluna Key2 será Faixa (“D1”).

Código:

 Sub Sort_Range_Example () Range ("A1: E17"). Sort Key1: = Range ("B1"), Order1: = xlAscending, Key2: = Range ("D1"), End Sub 

Once the Key2 is specified we need to decide on the sorting patter of whether it is ascending order or descending order in Order2 argument since we are sorting the sales value from largest to smallest we can choose “xlDescending” order.

Code:

 Sub Sort_Range_Example() Range("A1:E17").Sort Key1:=Range("B1"), Order1:=xlAscending, Key2:=Range("D1"), Order2:=xlDescending, Header:=xlYes End Sub 

After that mention the Header argument as “xlYes”. Now run the code and see what happens.

Output:

Previously it has sorted based only on “Country-wise” but this time it has sorted based on “Country-wise” first and then also on “Gross Sales” from highest to lowest.

Like this, we can use the “Sort” method in VBA to organize the data.

Things to Remember about Excel VBA Sort Range

  • The sort is a method available in VBA and to access this method we need to specify what the range of cells we are going to sort.
  • If the data range includes headers then we need to choose the header option as “xlYes”, if not we can choose “xlNo”.