본문 바로가기
엑셀/엑셀 VBA

매크로 : 자동필터에서 항목 전부 체크하기

by 한국수달보호협회장 2024. 3. 28.

1줄 요약 :

 ActiveSheet.Range("A1").AutoFilter Field:=1

 

 

 

자동필터에서 특정 열에 모든 값들을 체크하고 내가 원하는 값들만 해제하는 코드가 필요했다. 이거는 실무에서 쓸 일이 많을 것같고 예전에 쓴 적도 있었는데, 방법이 그냥 순환문을 이용해서 항목을 전부 다 체크하는거였다. 100개가 넘는 경우에는 시간이 좀 걸렸다. 몇 분까지는 아니지만 몇 초 소요됐음.

 

뭐 좋은 방법없나하고 인터넷에 열심히 쳤는데도 답이없었는데 stackoverflow에 있었다

심지어 코드가 진짜 단순하고 짧아서 좀 허망했다

 

https://stackoverflow.com/questions/32081192/excel-vba-filter-select-all

 

Excel VBA - Filter "Select All"

I have an Excel workbook that I use to keep track of my orders for my warehouse. I have an "Open Re-Orders" tab and an "Items Needing Quote Tab". On the "Open Re-Orders" tab, Column A contains the ...

stackoverflow.com

 

This is easier than you think. Just don't include the "criteria" You have 

 

ActiveSheet.Range("$A$1:$E$150").AutoFilter Field:=1, Criteria1:=Array( _

 

Shorten this to 

ActiveSheet.Range("$A$1:$E$150").AutoFilter Field:=1

 

Even shorter is

 ActiveSheet.Range("A1").AutoFilter Field:=1

 

 

내가 1열에 한 3개 항목을 체크해제 해놓은 뒤 저 명령문을 실행하면 전부 다 체크한다.

내가 원하는 항목만 체크해제하려면 그냥 저렇게 전부 체크하고 원하지 않는것만 visible=false 하면 될 듯