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