Microsoft Excel에서 VBA를 사용하여 삭제 중복 레코드
이 기사에서는 데이터에서 중복 레코드를 제거하는 매크로를 만듭니다.
원시 데이터는 이름, 나이 및 성별을 포함하는 직원 데이터로 구성됩니다.
논리 설명
데이터에서 중복 레코드를 제거하기 위해 “RemovingDuplicate”매크로를 만들었습니다. 이 매크로는 먼저 시퀀스의 데이터를 가져온 다음 연속 된 두 행의 값을 비교하여 중복 레코드를 찾습니다.
코드 설명
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 Step -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]로 문의 해주세요