Lost Information!

엑셀 VBA 기초 - 고급필터를 VBA로 사용하세요~ 본문

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

엑셀 VBA 기초 - 고급필터를 VBA로 사용하세요~

Lostinformation 2021. 1. 6. 16:05

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

 

지난 글에서는

매크로 기록기를 

활용하여 VBA를 

작성하는 방법에 대해

알려드렸습니다.

 

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

기억이 나질 않으신다면

밑에 글을 참고해주세요.

red-s.tistory.com/2481

 

엑셀 VBA 기초 - 매크로기록기를 활용하는 방법- 2편

모두가 칼퇴하는 그날까지~ 지난 글에서는 매크로 기록기를 활용하는 방법에 대해 알려드렸습니다. 만일 저번 내용을 모르시거나 기억이 나질 않으신다면 밑에 글을 참고해주세요. red-s.tistory

red-s.tistory.com

 

이번 글에서는 실무에서 

정말 많이 사용하는 고급 필터를

VBA로 제작하여 버튼 하나로 

사용하는 방법을 알려드리겠습니다.

 

그럼 엑셀을 실행해주세요~

 

 

먼저 우리가 흔하게 볼 수 있는

데이터 표로 설명드릴게요~

 

보통 고급 필터를 사용하여 

1월에 현금 사용내역 또는

2월에 카드 사용내역 등을

따로 추출하고 그리고 합산까지

가능하게 만드실 텐데요.

 

먼저 매크로 기록기를 실행하고

이렇게 고급 필터를 사용해서

범위와 복사할 위치를 정해주고

매크로 기록기를 중지한 후에

ALT +F11을 눌러 확인해보면

 

 

 

이렇게 생각보다 깔끔한

내용의 매크로를 볼 수 있습니다.

 

그런데 매번 데이터의 양과

내용이 변경될 수 있으니 

코드를 조금 수정해보겠습니다.

 

 

이렇게 수정해주면

보다 더 깔끔하지만 

변동되는 데이터도 문제없이

사용할 수 있는 VBA를 

만들 수 있습니다.

 

바로 설명해드리면

 

Sub 매크로 8()

Range("H6"). CurrentRegion.Offset(2). Clear

H6부터 아래 있는 데이터를

삭제해줘

(필터링을 할 때

기존의 생성되어있는

데이터를 지우고 새로운

필터링 값을 입력하기 위해)

 

Range("B5"). CurrentRegion.AdvancedFilter Action:=xlFilterCopy, _
                                             CriteriaRange:=Range("H2:I3"), _
                                             CopyToRange:=Range("H6:J6"), _
                                             Unique:=False

B5부터 시작되는 데이터에

고급 필터 기능을 사용해 

조건 범위는 H2:I3이고 

복사해서 붙여 넣을 범위는

H6:J6이야 

(데이터의 양이 변동되어도

사용할 수 있도록 시작 셀인

B5로 잡고 CurrrentRegion을

사용하였습니다)

 

End Sub

 

이렇게 변경하고 실행하게 되면

 

조건 범위는 유효성 검사를 통해

1월 또는 현금을 2월 또는 카드로

변경할 수 있게 지정하고 

필터링에 만들어놓은 매크로 8을

연결하면 언제든 고급 필터 기능을

손쉽게 사용할 수 있게 됩니다.

 

당연히 데이터의 양이 늘어나도

전혀 문제 되지 않고요.

 

분명 저번 글에서 매크로 기록기를

활용하면 VBA를 조금 더 쉽게

사용할 수 있다고 말씀드렸습니다.

 

당연히 오히려 독이 될 때도

있는 매크로 기록기이지만

실무에서 자주 사용하는 

고급 필터를 이렇게 사용한다면

분명 퇴근시간을 조금이나마 

당길 수 있을 거라 생각합니다.

 

그럼 여기까지 궁금하신 점은

댓글에 남겨주시고 

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

Comments