Microsoft ExcelでVBAを使用して重複したレコードを削除します
この記事では、データから重複レコードを削除するマクロを作成します。
生データは、名前、年齢、性別などの従業員データで構成されます。
ロジックの説明
データから重複レコードを削除するためのマクロ「RemovingDuplicate」を作成しました。このマクロは、最初にシーケンス内のデータを取得し、次に2つの連続する行の値を比較して、重複するレコードを見つけます。
コードの説明
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]までご連絡ください