PCnPPCnS_phone

[Excel] 중복데이터를 지우는 VBA 코드

도일 남건욱 2007. 4. 20. 13:00
[Excel] 중복데이터를 지우는 VBA 코드

  오늘은 5월20(토)일에 진행하는 장미희님Excel 매크로&VBA 과정중복데이터를 지우는 VBA 코드에 대해서 알아보도록 하겠습니다. (사용버전: 공통)

  엑셀 매크로 또는 엑셀 VBA는 엑셀사용자라면 언젠가는 도전하고 싶은 목표입니다. 실제 주변에서나 본인의 경험상 엑셀VBA로 엑셀 작업시간과 노력이 적게 드는 경우를 빈번하게 경험하고 있습니다. 엑셀 VBA로 편리하게 작업할 수 있는 예를 살펴보겠습니다.

  이번 뉴스레터는 다음 뉴스레터와 연결되는 내용으로 중복데이터를 지우는 VBA코드를 알아보겠습니다. 아래의 상단 그림과 같이 성별과 부서명이 반복되면서 입력되어 있는 경우에 하단 그림처럼 VBA 정리하려고 합니다. 지면의 제한상 일부 데이터만 예로 든 것이고 실제 데이터는 대량의 데이터입니다.


[변경 전]


[변경 후]

1. 사용되는 명령어들

  엑셀VBA작업을 하려면 VBA명령어에 대해 잘 알고 있어야 합니다.

 - Range : 엑셀에서 셀을 지정할 때 사용하는 명령어. A3셀은 Range(“A3”)이라고 표현합니다.
- ClearContents : 셀에 입력된 내용만 지울 때 사용합니다. 서식은 그대로 유지됩니다.

2. 사용되는 VBA 구문

  VBA 문법이라고 생각하시면 됩니다. 일정한 범위를 반복해주는 For구문과 조건에 따라 다른 명령문을 수행하는 If구문을 사용합니다.

 For Each 원소 In 집합개념의 범위
      명령어들
 Next

  In 다음의 집합개념의 범위에 데이터가 입력된 전체범위를 지정하고 In 앞의 원소는 집합의 데이터를 하나씩 지칭합니다. For와 Next는 그 사이의 명령어들을 집합내의 데이터를 전부 다루도록 지정하는 역할을 합니다.

 If 조건 Then
    참일 경우의 명령문
Else
    거짓일 경우의 명령문
End If

  If구문은 엑셀의 If함수와 동일한 역할을 합니다. 조건에 참인 경우와 거짓인 경우에 따라 명령문을 다르게 지정합니다.

3. 실제 작성한 VBA 코드입니다.

Sub 중복지우기()
기준셀값 = Range("A3")

For Each 셀 In Range("A4:A30")
If 기준셀값 = 셀.Value Then
 ** 남에서 여가 입력된 처음 셀일 때 실행됩니다.
셀.ClearContents
Else
기준셀값 = 셀.Value
End If
Next

기준셀값 = Range("B3")
For Each 셀 In Range("B4:B30")
If 기준셀값 = 셀.Value Then
** 부서명이 변경되는 처음 셀일 때 실행됩니다.
셀.ClearContents
Else
기준셀값 = 셀.Value
End If
Next
End Sub
 

 

오피스튜터 장미희 강사의 '엑셀 핵심 기능 콘사이스 199' 가 출간되었습니다.

바쁜 비즈니스맨을 위한 오피스 활용서 시리즈! BUSY? EASY?

필요할 때마다 찾아보고 업무에 바로 적용하는 프로 비즈니스맨의 엑셀 활용 비법 199가지를 총정리한 내용입니다.  일반 엑셀 입문서를 ‘엑셀의 처음부터 끝까지 설명하는 백과사전’이라고 한다면, 이 책은 ‘군더더기 없는 휴대용 엑셀 사전’으로 요약할 수 있습니다.
(오피스튜터 오프라인교육과정 10% 할인 쿠폰 포함)


[인터넷 서점에서 구매하기
]