일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 영통 협박
- 영통협박
- 영상통화 유출
- 영상유출
- 사이버범죄구제업체
- 메신저톡 사기
- 사이버범죄구제
- 카톡 영상 사기
- 카카오톡 사기
- 영상사기
- 카톡 영상 유출
- 영상통화사기
- 라바웨이브
- 동영상 사기
- 랜덤채팅 사기
- 라인 영상통화 협박
- 영상통화 사기
- 영통사기
- 영상통화 협박
- 영상 사기
- 사이버 범죄 구제 업체
- 몸캠피씽
- 엑셀#직장인칼퇴#칼퇴#직장인엑셀#VBA 배열#배열변수
- 카카오톡 협박
- 라인 영상통화 사기
- 팀카시아
- 몸캠피싱
- 라인 동영상 유포
- 동영상유포협박
- 카톡 영상 협박
- Today
- Total
Lost Information!
엑셀 VBA 기초 - union과 intersect 합집합과 교집합 활용하기 - 2편 본문
엑셀 VBA 기초 - union과 intersect 합집합과 교집합 활용하기 - 2편
Lostinformation 2020. 11. 18. 20:46모두가 칼퇴하는 그날까지~
지난 글에서는
엑셀 데이터를 보고
합집합에 대해
알려드렸는데요.
만일 저번 내용을 모르시거나
기억이 나질 않으신다면
밑에 글을 참고해주세요.
엑셀 VBA 기초 - union과 intersect 합집합과 교집합 활용하기 - 1편
모두가 칼퇴하는 그날까지~ 지난 글에서는 엑셀 데이터의 중복된 데이터를 제거하는 방법을 알려드렸는데요. 만일 저번 내용을 모르시거나 기억이 나질 않으신다면 밑에 글을 참고해주세요.
red-s.tistory.com
이번 글에서도 집합에 대해
이어서 진행하겠습니다.
저번 글에서는 그대로
union을 활용하여
남성의 데이터만
추출하여 삭제하였는데요.
이번에는 해당 데이터를
복사해서 옆으로
붙여 넣는 형식을
보여드리겠습니다.
위와 같은 표가 있다고
가정할게요.
그래서 왼쪽 데이터에서
여성 데이터만 추출하고
왼쪽 데이터는 그대로 두고
오른쪽에다 붙여 넣는
방법인 거죠.
그럼 일단
ALT + F11을 눌러주세요.
일단 저번 데이터 표와
동일한 시트에 연습하실 분들은
첫 번째 사진처럼 표를
왼쪽, 오른쪽 준비해주시면 되고
만일 다른 시트에 연습하실 분들은
위의 매크로를 삽입에 모듈 추가
또 해주셔서 복사 붙여 넣기
해주시면 됩니다.
그다음 수정하는 것이
새로 적는 것보다 빠르니까요
그다음 이렇게
작성해주시면 되는데요.
저번 글에서 달라진 부분만
설명해드리겠습니다.
For i = 7 To lngE
7부터 마지막행까지
반복 작업하면 되는데
If Range("G" & i) = "여" Then
만약 G값이 "여"라면
( 저번 글에서는 남자만 추출하여
삭제했지만 이번에는 여자만
추출하여 붙여 넣어야 하기에 )
If rngD Is Nothing Then
rngD값이 지정되어
있지 않다면
Set rngD = Range("G" & i). Offset(0, -1). Resize(1, 7)
rngD는 G값의
왼쪽으로 한 칸 이동하여
1행 7열까지야
("여"라는 데이터만이 아니고
해당 행전체를 복사해야 하기에
OFFSET과 RESIZE를 활용하여
추출하여야 합니다)
Else
아니라면
Set rngD = Union(rngD, Range("G" & i). Offset(0, -1). Resize(1, 7))
rngD는 기존의 추출한 값과
새로 나온 데이터 값을
합쳐서 다시 구성해
(물론 여기서도 다시
offset과 Resize를 적어주어야
정상 작동됩니다)
End If
End If
If rngD Is Nothing Then
MsgBox "복사할 범위가 없어요"
rngD의 값이 없다면
복사할 범위가 없다는
메시지 박스를 띄우고
Else
rngD.Copy Range("o7")
그게 아니라면
rngD의 값을 O7에
복사해서 붙여 넣어주세요
End If
이렇게 하고 실행하면
이렇게 추출돼서
오른쪽으로 복사되는 거죠.
하지만 여기서 문제가 있는데요.
바로 이렇게 표시된 부분처럼
데이터의 값이 변경되면
정상 작동하지 않는다는 거죠.
그래서 오른쪽 데이터를
초기화해주어야 하는데요.
다시 ALT + F11 눌러주시고요.
표시된 부분만 추가해주시면
제대로 작동할 텐데요.
Range("O6"). CurrentRegion.Offset(1, 0). Clear
O6부터 데이터가 있는
표 전체를 선택하는데
기준점을 아래로 한 칸
내려서 삭제해
이렇게 다시 한번
Offset을 활용하여
삭제 처리하도록 설정하면
이렇게 데이터가 변경되어도
정상적으로 추출되는
매크로를 만들 수 있습니다.
어떻게 활용하는지에 따라
더 많은 조건들을 추가해서
만들 수도 있고
한번 만들어 놓은 매크로는
복사해서 다른 엑셀에서도
활용하실 수 있습니다.
그러니 꼭 직접 적어서
연습하시고 많이
활용하셨으면 좋겠습니다.
여기까지 궁금하신 점은
댓글에 남겨주시고
공감과 구독도 부탁드립니다.