중복 값 삭제 매크로
여러 셀에 산재된 중복된 삭제하는 것은 매크로로 한방에 삭제하는 것이 제일 편하다. 중복값 삭제 기능은 데이터 탭에 중복된 항목 제거 아이콘을 클릭하여 사용할 수 있다. 하지만 매크로보다 간단한 과정은 아니다. 이번 매크로는 셀 범위를 지정 선택하고 매크로 실행을 통해 중복값을 삭제한다.
중복된 값이 있다면 그들 중 하나만 남기고 삭제한다. 예를 들어 내가 지정한 범위의 셀이 3개이다. 이 셀에 전부 동일한 텍스트가 포함되어 있다면 3개 중에 1개의 값만 남기고 2개는 삭제하는 방식이다. 조건부 서식의 중복값을 강조하는 것과는 차이가 있다.
매크로 동작 및 코드(중복 값 삭제)
간단한 동작만큼 매크로 방법 및 순서도 간단하다.
- 셀을 선택.
- 매크로 실행.
- 중복값 삭제.
- 중복된 값 중 하나를 제외한 나머지 삭제.
- 메시지 박스 출력.
Sub 중복값삭제()
Dim selectedRange As Range
Dim cell As Range
Dim cellValue As Variant
Set selectedRange = Selection
For Each cell In selectedRange
cellValue = cell.value
If WorksheetFunction.CountIf(selectedRange, cellValue) > 1 Then
cell.ClearContents
End If
Next cell
MsgBox "중복값 삭제 완료", vbInformation
End Sub
매크로 실행(중복 값 삭제)
ER1~20번의 난수를 예를 들었다. 총 20개의 에러 발생 코드가 무작위로 반복되어 있다. 중복값을 삭제하려는 범위를 선택하고 매크로를 실행하면 중복된 값이 있다면, 1개의 값을 남기고 모두 삭제한다. 애초에 중복되지 않은 값은 당연히 그대로 존재한다. 결과를 확인하면 총 20개의 에러코드만 남은 것을 볼 수 있다. 매크로 진행이 끝났음을 알리는 메시지 박스도 빠짐없이 작성되었다.
코드가 간단한 만큼 실행도 깔끔한 매크로이다. 한 가지 문제점은 있다. 혹, 모든 셀을 전체 선택하여 매크로를 실행하지 않았으면 한다. 선택하는 셀의 수에 대한 제한 기능은 있지 않다. 이는 멈추거나 무한로딩할 수 있으니 주의가 필요하다.
매크로 작성은 어렵고 시간이 걸린다. 하지만 한번 작성해 두면 꺼내 쓰기 편하다. 꼭 그게 아니더라도 누군가 해놓은 매크로를 저장하여 사용하면 엑셀 작업의 효율도 올라가고 소중한 시간도 아낄 수 있다. 매크로(VBA)는 코드로 작성되어 되어 있다 보니 지레 겁부터 먹고 부담을 가질 수 있으나 사용하는 데는 전혀 어렵지 않다.
'엑셀 매크로로 편하게 엑셀하기
사무실 일잘러의 가장 필요한 팁들
minidrawer.tistory.com
'엑셀 팁(excel) > 엑셀 매크로 VBA' 카테고리의 다른 글
엑셀 텍스트 나누기 매크로 #9 (1) | 2023.12.11 |
---|---|
엑셀 매크로 버튼 만드는 기초 vba 활용 (1) | 2023.12.11 |
엑셀 시트 값 합치기 매크로(vba) #6 (1) | 2023.12.09 |
엑셀 특정 값 데이터 검색 매크로(vba) #5 (1) | 2023.12.09 |
엑셀 문자열 합치기 매크로(vba) #4 (2) | 2023.12.05 |