删除重复记录在Excel中使用VBA
在本文中,我们将创建一个宏以从数据中删除重复的记录。
原始数据由员工数据组成,其中包括姓名,年龄和性别。
逻辑解释
我们创建了一个宏“ RemovingDuplicate”,以从数据中删除重复的记录。该宏首先按顺序获取数据,然后在两个连续行的值之间进行比较以找出重复的记录。
代码说明
ActiveSheet.Sort.SortFields.Clear上面的代码用于删除数据上的所有先前排序。
ActiveSheet.Sort.SortFields.Add键:= Range(Selection.Address),_ SortOn:= xlSortOnValues,顺序:= xlAscending,DataOption:= xlSortTextAsNumbers上面的代码用于按升序对第一列中的数据进行排序。
对于i = ActiveSheet.Cells(Rows.Count,Selection.Column).End(xlUp).Row到Selection.Row +1步骤-1上面的代码用于应用反向循环,从最后一行开始到所选行。
ActiveSheet.Rows(i).Delete shift:= xlUp上面的代码用于删除一行并将光标移到上一行。
请遵循以下代码
Option Explicit Sub RemovingDuplicate() 'Declaring variables Dim i As Long 'Disabling screen updates Application.ScreenUpdating = False Range("A11").Select ActiveSheet.Sort.SortFields.Clear 'Sorting data in ascending order ActiveSheet.Sort.SortFields.Add Key:=Range(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 'Looping through all the cells For i = ActiveSheet.Cells(Rows.Count, Selection.Column).End(xlUp).Row To Selection.Row + 1 Step -1 'Comparing value of two adjacent cells for duplicate records If ActiveSheet.Cells(i, Selection.Column).Value = ActiveSheet.Cells((i - 1), Selection.Column).Value Then 'Delete the duplicate record ActiveSheet.Rows(i).Delete shift:=xlUp End If Next i 'Enabling screen updates Application.ScreenUpdating = True End Sub
如果您喜欢此博客,请在Facebook和Facebook上与您的朋友分享。
我们很希望收到您的来信,请让我们知道我们如何才能改善我们的工作并使您的工作更好。写信给我们[email protected]