2013. 10. 31. 15:14

autofilter 확인하기

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

엑셀 매크로를 작성하는 동안 상당히 거슬렸던 것이 autofilter다.


selection.autofilter라고하면 자동으로 필터가 걸리기 때문에 설정도 쉽고

기왕에 설정된 시트에 selection.autofilter를 실행하면 자동으로 해제되기 때문에 해제도 쉽다.

그러나 있으면 없애고 없으면 생기게 하기가 쉽지 않았다. 


 autofilter는 셀 단위로 걸리는데 필터의 설정 여부를 확인하는 것은 시트 단위이다.

따라서 시트의 autofiltermode를 점검해서 true면 넘어가고 false면 설정하면 된다. 


        ' 시트에 자동 필터가 설정되어 있는지 확인한다. 

        afChk = Worksheets("컬럼비교").AutoFilterMode

        

' 만약 설정되어 있으면

        If afChk = True Then

' 내가 원하는 필터가 아닐 수 있으므로 해제하고 내가 원하는 필터로 교체한다. 

            afChk = Selection.AutoFilter

            Range("A3:K3").Select

            afChk = Selection.AutoFilter

        Else

' 내가 원하는 필터를 설정한다. 

            Range("A3:K3").Select

            afChk = Selection.AutoFilter

        End If