안녕하세요. yyDandy 입니다.
1. 작업 이해하기
엑셀을 사용하다보면 필터(Filter) 기능을 자연스럽게 접하게 되는데요. 필터란 특정 조건에 맞는 데이터만 표시하는 기능이에요.
이제 여기서 등급이 A인 행만 다른 시트로 옮기는 매크로를 해볼게요. 전 시간에 나왔던 매크로 기록 기능을 이용하여 필터를 A로 지정해주고, 해당 목록을 복사하여 원하는 곳에 붙여넣기를 해주세요.
Range("C6").Select
ActiveSheet.Range("$C$6:$E$11").AutoFilter Field:=1, Criteria1:="A"
Range("C7:E10").Select
Selection.Copy
Sheets("Sheet2 (2)").Select
Range("C7").Select
ActiveSheet.Paste
저기 코드를 그대로 복사해서 영역만 바꿔준다면 원하는 조건의 데이터를 다른 시트로 옮기기가 완성된답니다! 하지만 더 궁금하신 분은 이어서 봐주세요. 응용하는 방법을 알려드릴게요.
2. 응용하기
우선 코드를 수정해서 간단하게 줄여볼게요.
Range("C6").AutoFilter Field:=1, Criteria1:="A"
Range("C7:E10").Copy Sheets("Sheet2 (2)").Range("C7")
Select이 끝나고 바로 뒤에 Selection이 붙는 경우에는 코드를 줄일 수 있어요. AutoFilter 역시 앞에 적힌 Select을 없애고 한 줄로 쓸 수 있어요. 그리고 Copy 한 후에 바로 옆에 Sheets를 적어주면 붙여넣을 정도를 복사 코드 바로 옆에 구성할 수 있어요. 이렇게 하면 코드가 훨씬 간결해지고 보기 좋아지기 때문에 코딩의 효율이 높아진답니다.
그 다음으로 할 일은 동적범위 참조하는 것인데요. 동적범위라고 하면 데이터 조건 범위가 달라지면 이에 따라 대응하는 것인데요. 위의 코드에서는 E10까지 밖에 범위가 되지 않았기 때문에 E11이 나오는 순간 데이터의 신뢰성과 정확도가 0이 될 수 밖에 없어요. 따라서 이 범위를 엑셀의 끝 번호까지 늘리게 되면 아무리 범위가 커져도 수정이 필요없게 돼요. 하지만 정확한 범위까지만 설정해야 할 때도 있겠죠? 그럴 때는 아래처럼 해주면 되는데요.
Range("C6").AutoFilter Field:=1, Criteria1:="A"
Range("C7",Cells(Rows.count, "E")End(xlUp)).Copy Sheets("Sheet2 (2)").Range("C6")
해당 코드에서는 E행의 마지막에서 컨트롤 + 방향키 위를 해서 전 범위를 복사하는 코드에요. 주의 할 점은 해당 기능을 실행하면 제목까지 함께 복사가 되기 때문에 붙여넣는 위치 역시 한 칸 당겨주는 센스가 필요해요.
그리고 다음으로 할 작업이 있어요. 해당 코드에서는 A의 등급을 가진 데이터만 불러올 수 있어요. 그렇다는 말은 B나 C를 가져오고 싶은 경우에는 코드를 매 번 수정해야 한다는 점이에요. 이럴 때는 참고 셀을 지정하고 그 셀에 맞게 값이 연동되도록 코드를 수정하는 작업을 해줘야겠죠?
Range("C6").AutoFilter Field:=1, Criteria1:="=Range("D4").Value"
Range("C7",Cells(Rows.count, "E")End(xlUp)).Copy Sheets("Sheet2 (2)").Range("C6")
제가 예제로 만든 엑셀에서는 D4에 A, B, C를 표시할 수 있는 셀을 지정했어요. 그리고 필터에서 Criteria1 값을 D4로 지정한다면 해당 셀만 바꾸면 이 특정 데이터 복사하기 매크로는 작동할 수 있게 되는 것이랍니다.
이렇게 오늘은 원하는 데이트를 붙여넣는 방법에 대해 알아봤습니다!! 다음에도 유익한 내용을 챙겨올게요.
'지난 게시글' 카테고리의 다른 글
[엑셀] 우편 주소 레이블 하는 법, 쉽게 우편주소 라벨 뽑기(양식제공) (0) | 2023.05.04 |
---|---|
[카페] 부산, 김해 대동 파우제앤숨 (0) | 2023.04.29 |
[VBA] 엑셀 매크로 & VBA 기초(다른 파일의 데이터 가져오기, 특정 데이터 가져오기) (3) | 2023.04.27 |
[군대] 공군장교 복지혜택, 국방부 단체보험 청구방법, 후기 (2) | 2023.04.27 |
[맛집] 화명동 초밥집(스시순) (3) | 2023.03.10 |