Eliminar duplicados en VBA

Iqra Hasnain 12 julio 2022
  1. Eliminar duplicados en VBA
  2. Eliminar varias columnas duplicadas en VBA
Eliminar duplicados en VBA

Presentaremos cómo eliminar duplicados en VBA con ejemplos.

Eliminar duplicados en VBA

Cuando se trabaja con hojas de Excel con datos a granel, existe la posibilidad de que estos datos contengan algunos duplicados. Es esencial eliminar cualquier duplicado para evitar cálculos incorrectos. Para ello, primero tenemos que limpiar nuestros datos y eliminar los duplicados. VBA proporciona una función simple, RemoveDuplicates, que puede usarse para este propósito.

Primero debemos seleccionar el rango en el que se encuentran nuestros datos, y luego usaremos la función RemoveDuplicates en ese rango. También necesitamos definir cuántas columnas deben verificarse en busca de duplicados. Si tenemos encabezados dentro del rango, también debemos marcar el encabezado como un sí. Veamos un ejemplo y usemos esta función. En primer lugar, crearemos datos de demostración como se muestra a continuación.

datos de demostración para eliminar duplicados en VBA

Usemos la función Eliminar duplicados para eliminar los duplicados.

Código de ejemplo:

# VBA
Sub duplicateRemover()
Range("A1:B*").RemoveDuplicates Columns:=1
End Sub

Producción:

datos de demostración después de eliminar duplicados en VBA

El método RemoveDuplicates se usa en un rango. Si se encuentran duplicados, podemos eliminar cualquier fila pero mantener la fila original con todos los valores.

El método RemoveDuplicates solo funciona en columnas, no en filas.

Eliminar varias columnas duplicadas en VBA

Al eliminar duplicados, puede ser peligroso eliminar duplicados tomando solo datos de una columna. Los datos duplicados en una columna pueden tener algo diferente en la siguiente, lo que los convierte en un elemento único en lugar de un duplicado.

Podemos comparar fácilmente varias columnas en el método RemoveDuplicates al pasar varias columnas a través de una matriz, como se muestra a continuación.

datos de demostración para comparar varias columnas en el método RemoveDuplcate

Código de ejemplo:

# Vba
Sub duplicateRemover()
ActiveSheet.UsedRange.RemoveDuplicates Columns:=Array(1, 2)
End Sub

Producción:

datos de demostración después de comparar varias columnas en el método RemoveDuplcate

Cuando comparamos ambas columnas, solo eliminó las columnas que tenían duplicados en función de ambas columnas, no solo de una. No es necesario proporcionar siempre las columnas en orden, podemos enviar las columnas que queremos comparar en cualquier orden e incluso podemos usar las columnas 1 y 5.