この記事では、データから重複レコードを削除するマクロを作成します。

生データは、名前、年齢、性別などの従業員データで構成されます。

ArrowMain

ロジックの説明

データから重複レコードを削除するためのマクロ「RemovingDuplicate」を作成しました。このマクロは、最初にシーケンス内のデータを取得し、次に2つの連続する行の値を比較して、重複するレコードを見つけます。

ArrowOutput

コードの説明

ActiveSheet.Sort.SortFields.Clear上記のコードは、データの以前の並べ替えを削除するために使用されます。

ActiveSheet.Sort.SortFields.Add Key:= Range(Selection.Address)、_ SortOn:= xlSortOnValues、Order:= xlAscending、DataOption:= xlSortTextAsNumbers上記のコードは、最初の列のデータを昇順で並べ替えるために使用されます。

For i = ActiveSheet.Cells(Rows.Count、Selection.Column).End(xlUp).Row To 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]までご連絡ください