Vba: como classificar uma lista de valores
Você pode usar a seguinte sintaxe básica para ordenar uma lista de valores no Excel usando VBA:
SubRankValues ()
Dim i As Integer
For i = 2 To 11
Range(" C " & i) = WorksheetFunction.Rank(Range(" B " & i), Range(" B2:B11 "), 0)
Next i
End Sub
Este exemplo específico classifica os valores nas células B2:B11 e exibe as classificações nas células C2:C11 .
O último argumento 0 especifica que os valores devem ser classificados em ordem crescente (o maior valor recebe a classificação 1, o segundo maior valor recebe a classificação 2, etc.).
Para ordenar os valores em ordem decrescente, basta substituir o 0 por 1 .
O exemplo a seguir mostra como usar essa sintaxe na prática.
Exemplo: como ordenar valores usando VBA
Suponha que temos a seguinte lista de jogadores de basquete junto com seus pontos marcados:
Suponha que queiramos calcular a classificação de cada valor na coluna de pontos.
Podemos criar a seguinte macro para fazer isso:
SubRankValues ()
Dim i As Integer
For i = 2 To 11
Range(" C " & i) = WorksheetFunction.Rank(Range(" B " & i), Range(" B2:B11 "), 0)
Next i
End Sub
Quando executamos esta macro, recebemos a seguinte saída:
A classificação de cada valor na coluna de pontos é exibida na coluna C.
Por exemplo:
- O jogador H com 41 pontos tem o maior valor de pontos, portanto recebe a classificação 1 .
- O jogador C com 40 pontos tem o segundo maior valor de pontos, então ele recebe a classificação 2 .
E assim por diante.
Para classificar os valores da coluna de pontos em ordem decrescente, podemos alterar o último argumento do método Rank de 0 para 1 :
SubRankValues ()
Dim i As Integer
For i = 2 To 11
Range(" C " & i) = WorksheetFunction.Rank(Range(" B " & i), Range(" B2:B11 "), 1)
Next i
End Sub
Quando executamos esta macro, recebemos a seguinte saída:
A classificação de cada valor na coluna de pontos é exibida na coluna C.
Por exemplo:
- O jogador I com 11 pontos tem o menor valor de pontos, portanto recebe a classificação 1 .
- O jogador E com 13 pontos tem o segundo menor valor de pontos, então ele recebe a classificação 2 .
E assim por diante.
Nota : Você pode encontrar a documentação completa do método VBA Rank aqui .
Recursos adicionais
Os tutoriais a seguir explicam como realizar outras tarefas comuns em VBA:
VBA: Como contar células com texto específico
VBA: Como contar o número de linhas no intervalo
VBA: Como escrever funções COUNTIF e COUNTIFS