Eliminar duplicados en Excel VBA - Macros fáciles de Excel

Tabla de contenido

A continuación, veremos un programa en Excel VBA ese elimina duplicados.

Situación:

En la columna A tenemos 10 números. Queremos eliminar los duplicados de estos números y colocar los números únicos en la columna B.

1. Primero, declaramos cuatro variables. toAdd de tipo Boolean, uniqueNumbers de tipo Integer, i de tipo Integer yj de tipo Integer.

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

2. A continuación, escribimos el primer número de la columna A en la columna B, ya que el primer número siempre es "único".

Celdas (1, 2) .Valor = Celdas (1, 1) .Valor

3. Inicializamos dos variables. Acabamos de agregar un número a la columna B, por lo que inicializamos números únicos con el valor 1. Establecemos en Agregar en Verdadero asumiendo que el siguiente número también debe agregarse (esto no es necesariamente cierto, por supuesto).

números únicos = 1
toAdd = True

Necesitamos determinar si el segundo número es 'único' o no. Esto se puede hacer de una manera muy sencilla. Solo si el número aún no está en la columna B, el segundo número debe agregarse a la columna B.

4. También necesitamos verificar esto para el tercer número, cuarto número, etc. Comenzamos un ciclo For Next para esto.

Para i = 2 a 10

5. Ahora viene la parte más importante del programa. Si el segundo número es igual a uno de los números en la columna B (hasta ahora solo tenemos un número único), establecemos en Agregar como Falso porque en este caso no queremos agregar este número. (no es 'único'). Por el momento, uniqueNumbers sigue siendo igual a 1, pero uniqueNumbers puede ser una lista completa. Para comprobar toda esta lista, necesitamos otro bucle For Next. Nuevamente: si el número que queremos agregar es igual a uno de los números en esta lista, toAdd se establecerá en False y el número no se agregará. Agregue las siguientes líneas de código:

Para j = 1 a números únicos
Si Cells (i, 1) .Value = Cells (j, 2) .Value Then
toAdd = False
Terminara si
Siguiente j

6. Solo si toAdd sigue siendo True y no se establece en False, Excel VBA necesita agregar el número a la columna B. Al mismo tiempo, incrementamos uniqueNumbers en 1 porque ahora tenemos un número único más. Las siguientes líneas de código hacen el trabajo:

Si toAdd = True Entonces
Celdas (números únicos + 1, 2) .Valor = Celdas (i, 1) .Valor
números únicos = números únicos + 1
Terminara si

7. Finalmente, establecemos en Agregar a Verdadero asumiendo que se debe agregar el siguiente número (tercer número). Una vez más, esto no es necesariamente cierto.

toAdd = True

8. No olvide cerrar el ciclo.

Siguiente yo

9. Coloque su macro en un botón de comando y pruébelo.

Resultado:

Va a ayudar al desarrollo del sitio, compartir la página con sus amigos

wave wave wave wave wave