1. 엑셀 고급필터 매크로 기초
이번 강의에서는 매크로 녹화기능을 사용하여 매크로 1줄로 사용가능한 고급필터 매크로 기초 사용법을 알아봅니다.
이후 고급필터 매크로인 AdvancedFilter 함수의 사용법을 각 인수별로 하나씩 살펴봅니다.
2. 고급필터 매크로 실전 응용
이번 강의에서는 실무에서 실시간으로 변하는 범위를 자동으로 인식하여 업무를 자동화할 수 있는 CurrentRegion 속성 사용법을 알아봅니다.
이후 CurrentRegion 속성을 고급필터 매크로에 적용하는 방법을 알아봅니다.
3. 필터 자동화 마스터 코드 사용예제
이번 강의 마지막 내용으로는 고급필터 자동화 매크로와 함께 활용가능한 실시간 정렬 및 범위 초기화 마스터 코드 사용법을 알아봅니다.
최종 결과물로 강의에서 알아본 모든 매크로 명령문을 활용하여 실시간 필터링 및 정렬, 범위 초기화가 가능한 고급필터 자동화 서식을 제작합니다.
라이브 정보
회차
45회
방송일
2021년04월25일
카테고리
멤버쉽 라이브 강의
등급
Plus
커리큘럼
질문 & 댓글 62
스크립트
자막을 불러오는 중...
라이브강의 다시보기는 유튜브 위캔두 멤버십 회원 여러분에게 제공해드리고 있습니다.
완성파일은 영상 하단 댓글에서 확인하실 수 있습니다. :)
감사합니다.
6개 정도까지 쪼개야하는데 방법이 있을까요? 함수를 쓰면 너무 길어져서...
Action:=xlFilterCopy, _
CriteriaRange:=Sheet1.Range("L4").CurrentRegion, _
CopyToRange:=Sheet1.Range("B9").CurrentRegion.Rows(1), _
Unique:=False
오타나 틀린게 있을까요?
RawData 에서는 잘되는데
수정 하고 주문조회에서는 나오질 않네요..
메뉴 이름 변경 하고 동일하게 다 변경을 했는데.
오류가 뜹니다.
CopyToRange의 범위를, 두번째 시트로 같이 수정해주시면 됩니다. :)
아래 코드로 수정해보시겠어요?
Sheet2.Range("A1").CurrentRegion.AdvancedFilter _
Action:=xlFilterCopy, _
CriteriaRange:=Sheet1.Range("L4").CurrentRegion, _
CopyToRange:=Sheet2.Range("B9").CurrentRegion.Rows(1), _
Unique:=False
궁금한게 있는데요.
영상 47분 바로전에 주문현황조회 누르잖아요.
메크로 영상보고 똑같이 만들었는데 조회버튼 누르면
rows 1행 제목만 나오고 아래 데이터가 안나와요.
Sub 고급필터()
Sheet7.Range("A1").CurrentRegion.AdvancedFilter _
Action:=xlFilterCopy, _
CriteriaRange:=Sheet1.Range("L4").CurrentRegion, _
CopyToRange:=Sheet1.Range("B9").CurrentRegion.Rows(1), _
Unique:=False
End Sub
혹시 제 코딩에 먼가 문제가 있나요??
진짜 열씸히 배워보고싶은데... 막히니까 답답하네요.
도와주세요
참고로 sheet7은 매출이고 sheet1은 매출자료에요.
sheet1은 검색하는곳이고 sheet7은 데이터자료입니다.
vba에서 확인했어요
얼마전에 유튜브에도 동일한 질문을 올려주셨던 걸로 기억하는데.. 제가 회신이 늦었습니다.
CopyToRange:=Sheet1.Range("B9").CurrentRegion.Rows(1), _
이 부분을CopyToRange:=Sheet7.Range("B9").CurrentRegion.Rows(1), _
로 한번 변경해보시겠어요?다른 시트로 붙여넣기 하는 것이기 때문에, 붙여넣기 할 범위도 해당 시트로 변경해주셔야합니다.
혹시 고급필터로 여러시트에서 검색조건을 갖고 오려면 VBA를 어떻게 수정해야 할지도 궁금합니다^^;;
아쉽게도 고급필터를 1개 원본범위 또는 1개 조건범위에서만 불러올 수 있습니다.
만약 여러 시트를 대상으로 사용하시려면 고급필터를 여러번 사용하시거나, 필터링 매크로를 따로 작성하셔야 됩니다 :)
1. '1004'런타임 오류가 발생하였습니다.:
추출범위의 필드 이름이 잘못되었거나 없습니다.
라고 팝업창이 뜹니다.
VBA는 다음과 같습니다.(유튜브에서 응용해서 항목을 늘렸습니다.)
(첫번째는 sheet2 rawdata에서 sheet1 main(검색시트) 으로 불러들여 필터링 ; 팝업창이 떴습니다.
두번째는 처음배운 sheet2 rawdata에서 필터링 ; 이건 잘됩니다.)
Sub 고급필터() <---------오류가 난 코드(다른 sheet)
Sheet2.Range("A1").CurrentRegion.AdvancedFilter _
Action:=xlFilterCopy, _
CriteriaRange:=Sheet1.Range("L3").CurrentRegion, _
CopyToRange:=Sheet1.Range("B9").CurrentRegion.Rows(1), _
Unique:=False
End Sub
______________________________________________
Sub 고급필터2()<---------------성공한 코드(같은 sheet)
Range("A1").CurrentRegion.AdvancedFilter _
Action:=xlFilterCopy, _
CriteriaRange:=Range("EP1").CurrentRegion, _
CopyToRange:=Range("EY1").CurrentRegion.Rows(1), _
Unique:=False
End Sub
_______________________________________________
2.댓글창에 리앤님,정성균님 의 답글에 수정해주신
copytorange의 sheet 번호는 2->1,7->1 이 맞는것 아닌가요?(검색하는 시트번호 sheet1)
제경우에도 sheet 1->2 로 변경하니 rawdata가 날라갔습니다.
더이상 진행이 안되니 답답해 미치겠습니다. 답변 꼭 부탁드립니다.
코드는 잘 작성하셨고 이상없습니다.
보조 명령문으로
각 범위가 잘 선택되는지 확인해보시고, 잘 선택되지 않으면 적절히 수정해보세요.
시트번호는 매크로편집기 좌측 프로젝트창에 보이는 시트 목록에서 해당 시트 번호를 찾아 작성하시면됩니다.
날짜로 검색 하게끔 만들려고 합니다
날짜로 만드는게 어려워 시작을 못하고있어요 .
엑셀 날짜를 입력하면 그 날을 어떻게 계산되게 하나요??
엑셀은 날짜를 1900/1/1 을 숫자 1로 시작해서, 하루마다 1씩 더해지는 숫자값으로 계산됩니다.
고급필터에서 날짜로 필터링 하시려면
형태로 입력하시거나
형태로 작성하시면 대부분의 경우에 사용할 수 있습니다.
혹시 검색어 1개로 두개의 열에 대해 필터링된 결과를 나타낼 수는 없을까요?
열의 이름이 같아야 필터링 되는 거 같아서 방법을 모르겠습니다 ㅜㅜ
고급필터 출력 범위에, 표시하고자 하는 열의 머리글만 입력하면, 두 열의 데이터만 출력할 수 있습니다.
중복된 값도 전부 보일 수 있게 할 수 있을까요?
고급필터 설정 중 '동일한 레코드는 하나만' 옵션으로 Unique 설정을 True로 해서 그런 것 같습니다.
AdvancedFilter 코드 중, Unique 값이 설정되어 있으면 Unique:=False로 변경후 사용해보세요.