Lost Information!

엑셀 VBA 기초 - 중복제거하기 본문

개인브랜드블로그를 만들어 보자/엑셀VBA

엑셀 VBA 기초 - 중복제거하기

Lostinformation 2020. 11. 13. 20:34

모두가 칼퇴하는 그날까지~

 

지난 글에서는 

엑셀의 오른 차순과 

내림차순을 원하는 만큼

이용하여 매크로로

만드는 방법에 대해 

알려드렸는데요.

 

만일 저번 내용을 모르시거나

기억이 나질 않으신다면

밑에 글을 참고해주세요.

red-s.tistory.com/2442

 

엑셀 VBA 기초 - 엑셀 정렬, 매크로만들기 - 2편

모두가 칼퇴하는 그날까지~ 지난 글에서는 엑셀의 오른 차순과 내림차순을 매크로로 만드는 방법에 대해 알려드렸는데요. 만일 저번 내용을 모르시거나 기억이 나질 않으신다면 밑에 글을 참

red-s.tistory.com

 

이번 글에서는 

중복제거에 대해 

알려드리려고 하는데요.

 

이렇게 위와 같이 생긴

데이터 표가 있다고 

가정하겠습니다.

 

물론 아무렇게나 

적혀있어 중복되는 

데이터가 있습니다.

 

하지만 바로 중복된 것을

제거하면 제대로 된 것인지

의심하는 분들도 계시기에

먼저 복사를 한 후에

그 데이터를 중복을 제거해

확인하도록 하겠습니다.

 

그럼 언제나처럼 

ALT + F11 버튼 눌러주세요.

 

마우스 오른쪽 버튼,

삽입에 모듈 버튼까지 

눌러주시고요.

 

이렇게 적어주세요.

 

바로 설명 들어가면

 

Sub test01()

테스트 01이라는

매크로를 만들게

 

Dim rngD As Range

rngD라는 변수를

설정하고

 

Dim lngE As Long

lngE라는 변수를 

설정할게

 

lngE = Cells(Rows.Count, "F"). End(xlup). Row

lngE는 F열

마지막 데이터 값인데

 

Range("F6:F" & lngE). Copy Range("h6")

F6부터 F열

마지막 데이터까지 

복사해서 H6에 

붙여 넣어줘 

 

End Sub

 

이렇게 적고 실행하면

 

이렇게 복사가 되죠.

 

그다음 중복을 

제거하기 위해 추가로 

매크로를 적으면

 

이렇게 적어주세요.

 

추가된 부분만

설명 들어가면

 

Range("H:H"). Clear

H의 행을 제거해 

 

이걸 하는 이유는

반복되는 중복제거에도

데이터가 겹쳐서

복사되지 않도록 

지우고 다시 붙여 넣기

하기 위해 매크로이고요.

 

Set rngD = Range("H7:H" & lngE)

rngD는 h7부터

데이터가 있는

H의 끝행까지 인데

 

rngD.RemoveDuplicates Columns:=1, Header:=xlNo

중복되는 것을

하나 남기고 제거해

그리고 맨 위의 고정

시키지 않는다.

 

이걸 실행하게 되면

 

이렇게 중복되는 것이

제외되고 하나씩만 

남게 되는 것을 

확인할 수 있습니다.

 

당연히 데이터의 양이 

또는 행이나 열이 늘어난다고

하더라도 데이터 범위만

잘 설정해주면 됩니다.

 

아 주의하셔야 하는 건 

 

rngD.RemoveDuplicates Columns:=Array(1, 2, 3), Header:=xlNo

 

이렇게 늘어난 열만큼

Array를 적고 

열의 개수를 적어주게 되면

문제없이 중복제거를 

할 수 있습니다.

 

여기까지 궁금하신 점은

댓글에 남겨주시고 

공감구독도 부탁드립니다.

Comments