Remover duplicatas no Excel VBA - Macros fáceis do Excel

Índice

Abaixo, veremos um programa em Excel VBA que remove duplicatas.

Situação:

Na coluna A, temos 10 números. Queremos remover as duplicatas desses números e colocar os números únicos na coluna B.

1. Primeiro, declaramos quatro variáveis. toAdd do tipo Boolean, uniqueNumbers do tipo Integer, i do tipo Integer ej do tipo Integer.

Dim toAdd As Boolean, uniqueNumbers As Integer, i As Integer, j As Integer

2. Em seguida, escrevemos o primeiro número da coluna A na coluna B, pois o primeiro número é sempre 'único'.

Células (1, 2) .Valor = Células (1, 1) .Valor

3. Inicializamos duas variáveis. Acabamos de adicionar um número à coluna B, portanto, inicializamos UniqueNumbers com o valor 1. Definimos toAdd como True assumindo que o próximo número também precisa ser adicionado (isso não é necessariamente verdade, é claro).

uniqueNumbers = 1
toAdd = True

Precisamos determinar se o segundo número é 'único' ou não. Isso pode ser feito de uma maneira muito fácil. Somente se o número ainda não estiver na coluna B, o segundo número precisa ser adicionado à coluna B.

4. Também precisamos verificar isso para o terceiro número, o quarto número e assim por diante. Iniciamos um loop For Next para isso.

Para i = 2 a 10

5. Agora vem a parte mais importante do programa. Se o segundo número for igual a um dos números na coluna B (até agora só temos um número exclusivo), definimos como Adicionar como Falso porque, neste caso, não queremos adicionar esse número! (não é 'único'). No momento, uniqueNumbers ainda é igual a 1, mas uniqueNumbers pode ser uma lista inteira. Para verificar toda a lista, precisamos de outro loop For Next. Novamente: se o número que queremos adicionar for igual a um dos números nesta lista, toAdd será definido como False e o número não será adicionado. Adicione as seguintes linhas de código:

Para j = 1 para números exclusivos
If Cells (i, 1) .Value = Cells (j, 2) .Value Then
toAdd = False
Fim se
Próximo j

6. Somente se toAdd ainda for True e não definido como False, o Excel VBA precisará adicionar o número à coluna B. Ao mesmo tempo, incrementamos uniqueNumbers em 1 porque temos um número exclusivo a mais agora. As seguintes linhas de código realizam o trabalho:

Se toAdd = True Then
Células (números únicos + 1, 2) .Valor = Células (i, 1) .Valor
UniqueNumbers = uniqueNumbers + 1
Fim se

7. Finalmente, definimos como Adicionar como Verdadeiro assumindo que o próximo número (terceiro número) precisa ser adicionado. Novamente, isso não é necessariamente verdade.

toAdd = True

8. Não se esqueça de fechar o loop.

Proximo eu

9. Coloque sua macro em um botão de comando e teste-a.

Resultado:

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

wave wave wave wave wave