본문 바로가기
컴알못/VBA

[VBA] 자동 필터 (.AutoFilter)

by 난프로 2023. 8. 13.

#VBA #필터 #AutoFilter

 

1. VBA 코드

1
2
3
4
5
6
7
8
9
10
11
Sub 자동필터()
 
Sheets("data").Range("A1").AutoFilter field:=2, Criteria1:="사과", Operator:=xlOr, Criteria2:="복숭아"
Sheets("data").Range("A1").CurrentRegion.Copy Sheets("Report1").Range("A1")
Sheets("data").Range("A1").AutoFilter
 
Sheets("data").Range("A1").AutoFilter field:=4, Criteria1:=">=100", Operator:=xlAnd, Criteria2:="<=200"
Sheets("data").Range("A1").CurrentRegion.Copy Sheets("Report2").Range("A1")
Sheets("data").Range("A1").AutoFilter
 
End Sub
cs

 

2. 코드 해석

> Sheets("data").Range("A1").AutoFilter field:=2, Criteria1:="사과", Operator:=xlOr, Criteria2:="복숭아"

' "data" sheet의 A1 셀에서 필터를 걸어 B열에서 "사과" 또는 "복숭아" 인 항목만 남겨라

> Sheets("data").Range("A1").CurrentRegion.Copy Sheets("Report1").Range("A1")

' "data" sheet의 필터링된 A1셀과 연결된 셀들을 복사하여 "Report1" Sheet의 A1에 붙여넣어라

>Sheets("data").Range("A1").AutoFilter

' "data" sheet의 필터를 해제하라

 

> Sheets("data").Range("A1").AutoFilter field:=4, Criteria1:=">=100", Operator:=xlAnd, Criteria2:="<=200"

' "data" sheet의 A1 셀에서 필터를 걸어 D열에서 "100 이상" 이고 "200 이하"인 항목만 남겨라

 

1. Sheets("data").Range("A1" : "data" 라는 Worksheet의 "A1" 셀 선택

2. Autofilter : 필터 명령

    - field : 필터를 줄 열 선택 (field:=2 -> 필터를 줄 데어터의 두번째 열에 필터 실행, 여기서는 B열)

    - Criteria1, 2 : 첫 번째, 두 번째 기준

    - Operator : 필터 적용 조건 관련 연산자       

Name Value Description
xlAnd 1 Logical AND of Criteria1 and Criteria2
xlBottom10Items 4 Lowest-valued items displayed (number of items specified in Criteria1)
xlBottom10Percent 6 Lowest-valued items displayed (percentage specified in Criteria1)
xlFilterCellColor 8 Color of the cell
xlFilterDynamic 11 Dynamic filter
xlFilterFontColor 9 Color of the font
xlFilterIcon 10 Filter icon
xlFilterValues 7 Filter values
xlOr 2 Logical OR of Criteria1 or Criteria2
xlTop10Items 3 Highest-valued items displayed (number of items specified in Criteria1)
xlTop10Percent 5 Highest-valued items displayed (percentage specified in Criteria1)

3. CurrentRegion.Copy : 현재 선택된 셀과 연결된 선택하여 (Ctrl + Shift + 8) 전체 셀을 복사

4. Sheets("Report").Range("A1") : 위 복사된 데이터를 붙여넣을 Sheet 및 기준 셀 지정