Eliminar registros duplicados usando VBA en Microsoft Excel

Anonim

En este artículo, crearemos una macro para eliminar registros duplicados de los datos.

Los datos brutos consisten en datos de empleados, que incluyen nombre, edad y sexo.

Explicación lógica

Hemos creado una macro "RemovingDuplicate" para eliminar registros duplicados de los datos. Esta macro primero obtiene los datos en una secuencia y luego hace una comparación entre los valores de dos filas consecutivas para encontrar registros duplicados.

Explicación del código

ActiveSheet.Sort.SortFields.Clear

El código anterior se utiliza para eliminar cualquier clasificación previa de los datos.

ActiveSheet.Sort.SortFields.Add Key: = Rango (Selection.Address), _

SortOn: = xlSortOnValues, Order: = xlAscending, DataOption: = xlSortTextAsNumbers

El código anterior se utiliza para ordenar los datos de la primera columna en orden ascendente.

Para i = ActiveSheet.Cells (Rows.Count, Selection.Column) .End (xlUp) .Row To Selection.Row + 1 Step -1

El código anterior se utiliza para aplicar un bucle inverso, comenzando desde la última fila hasta la fila seleccionada.

ActiveSheet.Rows (i) .Delete shift: = xlUp

El código anterior se utiliza para eliminar una fila y mover el cursor a la fila superior.

Siga a continuación para obtener el código

 Option Explicit Sub RemovingDuplicate () 'Declarando variables Dim i As Long' Desactivando las actualizaciones de pantalla Application.ScreenUpdating = False Range ("A11"). Seleccione ActiveSheet.Sort.SortFields.Clear 'Ordenando datos en orden ascendente ActiveSheet.Sort.SortFields.Add Clave: = Rango (Selection.Address), _ SortOn: = xlSortOnValues, Order: = xlAscending, DataOption: = xlSortTextAsNumbers With ActiveSheet.Sort .SetRange Range (Selection.Offset (1, 0), ActiveSheet.Cells (Rows.Count, Selection.End (xlToRight) .Column) .End (xlUp)) .Header = xlNo .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With 'Recorriendo todas las celdas para i = ActiveSheet.Cells (Rows. Count, Selection.Column) .End (xlUp) .Row To Selection.Row + 1 Step -1 'Comparación del valor de dos celdas adyacentes para registros duplicados Si ActiveSheet.Cells (i, Selection.Column) .Value = ActiveSheet.Cells ( (i - 1), Selection.Column) .Value Then 'Elimina el registro duplicado ActiveSheet.Rows (i) .Delete shift: = xlUp End If Next i' Habilitando la pantalla hacia arriba fechas Application.ScreenUpdating = True End Sub 

Si te gustó este blog, compártelo con tus amigos en Facebook. Además, puede seguirnos en Twitter y Facebook.

Nos encantaría saber de usted, háganos saber cómo podemos mejorar nuestro trabajo y hacerlo mejor para usted. Escríbanos al sitio de correo electrónico