Classificar dados aleatoriamente no Excel VBA - Macros fáceis do Excel

Índice

Abaixo, veremos um programa em Excel VBA que classifica dados aleatoriamente (neste exemplo, classifica nomes aleatoriamente).

Situação:

1. Primeiro, declaramos quatro variáveis. Uma variável do tipo String que chamamos de TempString, uma variável do tipo Integer que chamamos de TempInteger, uma variável do tipo Integer que chamamos de i e uma variável do tipo Integer que chamamos de j.

Dim tempString As String, tempInteger As Integer, i As Integer, j As Integer

2. Escrevemos 5 números aleatórios na coluna B (um para cada nome). Para isso, usamos a função de planilha RandBetween.

Para i = 1 a 5
Células (i, 2) .Value = WorksheetFunction.RandBetween (0, 1000)
Proximo eu

Resultado até agora:

Usaremos os números ao lado de cada nome para classificar os nomes. O nome com o número mais baixo primeiro, o nome com o segundo número mais baixo, o segundo, etc.

3. Iniciamos um loop duplo.

Para i = 1 a 5
Para j = i + 1 a 5

4. Adicione a seguinte linha de código:

If Cells (j, 2) .Value <Cells (i, 2) .Value Then

Exemplo: para i = 1 e j = 2, Wendy e Richard são comparados. Como Richard tem um número menor, trocamos Wendy e Richard. Richard está na primeira posição agora. Para i = 1 e j = 3, Richard e Joost são comparados. Joost tem um número maior, então nada acontece. Dessa forma, o Excel VBA obtém o nome com o menor número na primeira posição. Para i = 2, o Excel VBA obtém o nome com o segundo número mais baixo na segunda posição, etc.

5. Se for verdade, trocamos os nomes.

tempString = Células (i, 1) .Value
Células (i, 1) .Valor = Células (j, 1) .Valor
Células (j, 1) .Value = tempString

6. E trocamos os números.

tempInteger = Células (i, 2) .Valor
Células (i, 2) .Valor = Células (j, 2) .Valor
Células (j, 2) .Value = tempInteger

7. Não se esqueça de fechar a instrução If.

Fim se

8. Não se esqueça de fechar os dois loops.

 Próximo j
Proximo eu

9. Teste o programa.

Resultado:

Observação: você pode adicionar uma linha que exclui os números da coluna B. É ainda melhor colocar os números de cada nome em uma matriz, de forma que nenhum número seja colocado na planilha. No entanto, para fins ilustrativos, optamos por colocar os valores na folha.

Você vai ajudar o desenvolvimento do site, compartilhando a página com seus amigos

wave wave wave wave wave