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.
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:
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.
Código de ejemplo:
# Vba
Sub duplicateRemover()
ActiveSheet.UsedRange.RemoveDuplicates Columns:=Array(1, 2)
End Sub
Producción:
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.