VBA Sort Range - Como classificar o intervalo no Excel VBA?

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, uma pergunta 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 do VBA em detalhes.

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

Opção de classificação em VBA

Para usar a opção de classificação, primeiro precisamos decidir qual é 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 da seguinte maneira.

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.

(Chave1): 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 (Key1) será Range (“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 tem 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.

Por exemplo, observe a estrutura de dados abaixo.

Temos dados de A1 a E17, portanto, primeiro, classificaremos os dados com base em "Por 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: uma vez que 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 “xlAscendente” .

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, então 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 Key2 e Order2 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 ”, o nome da nossa coluna Chave2 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.

Assim, podemos usar o método “ Sort ” em VBA para organizar os dados.

Coisas a lembrar sobre o intervalo de classificação do Excel VBA

  • O sort é um método disponível em VBA, e para acessar este método, precisamos especificar qual o intervalo de células que vamos classificar.
  • Se o intervalo de dados inclui cabeçalhos, então precisamos escolher a opção de cabeçalho como “xlSim”; caso contrário, podemos escolher “xlNão”.

Artigos interessantes...