#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 및 기준 셀 지정
'컴알못 > VBA' 카테고리의 다른 글
[VBA] 변수 타입과 범위 (0) | 2023.08.22 |
---|---|
[VBA] Function과 Subroutine (0) | 2023.08.22 |
[VBA] R1C1 참조 스타일 (0) | 2023.08.21 |
[VBA] VBA에서 다른 파일의 모듈 실행하기(Application.Run) - 1 (0) | 2023.08.14 |
[VBA] 사용자 정의 함수 만들기 / Add-in으로 추가하기 (0) | 2023.08.14 |
[VBA] Option Explicit 사용 이유 (0) | 2023.08.14 |
[VBA] 행 높이/열 너비 자동 조절 (.AutoFit) (0) | 2023.08.13 |
[VBA] 데이터가 입력된 마지막 행/열 찾기(.End) (0) | 2023.08.13 |