이 기사에서는 데이터에서 중복 레코드를 제거하는 매크로를 만듭니다.

원시 데이터는 이름, 나이 및 성별을 포함하는 직원 데이터로 구성됩니다.

ArrowMain

논리 설명

데이터에서 중복 레코드를 제거하기 위해 “RemovingDuplicate”매크로를 만들었습니다. 이 매크로는 먼저 시퀀스의 데이터를 가져온 다음 연속 된 두 행의 값을 비교하여 중복 레코드를 찾습니다.

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 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]로 문의 해주세요