在本文中,我们将创建一个宏以从数据中删除重复的记录。

原始数据由员工数据组成,其中包括姓名,年龄和性别。

ArrowMain

逻辑解释

我们创建了一个宏“ RemovingDuplicate”,以从数据中删除重复的记录。该宏首先按顺序获取数据,然后在两个连续行的值之间进行比较以找出重复的记录。

ArrowOutput

代码说明

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]