AutoFilter로 시트별로 분리 저장
구분자별로 필터를 사용하여 시트별로 분리 저장하고자 할 경우 사용하는 VBA Code 입니다.
여기서의 키포인트는 Range.AutoFilter 메서드 입니다.
expression.AutoFilter(Field, Criteria1, Operator, Criteria2, VisibleDropDown)
- Field : 목록의 맨 왼쪽 필드가 1번 필드
- Criteria1 : 찾을 조건, 공백 필드 조건은 "=" 사용, 공백필드 아닌 조건은 "<>", 지정하지 않으면 모든 필터
- Operator : 필터의 종류를 지정하는 XlAutoFilterOperator 상수 중 하나
- Criteria2 : 두번째 찾을 조건
- VisibleDropDown : False이면 필터링된 필드에서 자동 필터 드롭다운 화살표를 숨김
True이면 필터링된 필드에서 자동 필터 드롭다운 화살표를 표시
Option Explicit
Sub AutoFilter_Sheet_Split()
Dim rngAll As Range '// 전체 범위 지정 변수
Dim rngC As Range
Dim i As Integer
Application.ScreenUpdating = False '// 화면 업데이트 (일시) 중지
Set rngAll = Range("A1").CurrentRegion '// A1 열과 연결된 인접셀 영역
Set rngC = rngAll.Columns(1) '// 전체범위에서 선택할 열 1은 A열
Set rngAll = rngAll.Rows(2).Resize(rngAll.Rows.Count - 1)
'// A2 행부터 범위 재지정
For i = 2 To Worksheets.Count '// 2번째 시트부터 전체 시트만큼 순환
With Worksheets(i) '// 해당 시트명, 2번째, 3번째,,,,
rngC.AutoFilter 1, .Name, , , False '// 숫자1은 A열 필터
'// .Name 은 시트명 이름. 따라서 시트명 이름과 동일한 것을 필터함
'// .Name 은 Worksheets(i).Name 을 의미
rngAll.Copy .Cells(Rows.Count, 1).End(3)(2)
'// 필터된 값을 해당 시트(Worksheets(i))의 마지막 값이 들어있는 아래행에 복사하라
End With
Next i
rngC.AutoFilter '// 자동필터 해제
Application.ScreenUpdating = True
End Sub
Sub AutoFilter_Copy()
Dim rngAll As Range
Dim rngC As Range
Dim CateName
CateName = InputBox("구분자를 입력하세요")
Application.ScreenUpdating = False '// 화면 업데이트 (일시) 중지
Set rngAll = Range("A1").CurrentRegion '// A1 열과 연결된 인접셀 영역
Set rngC = rngAll.Columns(1) '// 전체범위에서 선택할 열 1은 A열
Set rngAll = rngAll.Rows(2).Resize(rngAll.Rows.Count - 1)
'// A2 행부터 범위 재지정
With Worksheets("연습") '// 해당 시트명 직접 입력
rngC.AutoFilter 1, CateName, , , False '// 숫자1은 A열 필터
'// 현재 시트(ActiveSheet)에서 CateName 만 자동 선별
rngAll.Copy .Cells(Rows.Count, 1).End(3)(2)
'// 자동 필터된 값을 연습 시트의 마지막 값이 들어있는 아래행에 복사하라
End With
rngC.AutoFilter '// 자동필터 해제
Application.ScreenUpdating = True
End Sub
위 VBA Code 입니다. 필요하신 분은 받아가세요.
vbs 첨부파일은 텍스트에디터로 열어서
엑셀에서 Alt + F11 눌러서 나오는 VBA Editor 창에서
[삽입] - [ 모듈] 눌러서 생성되는 화면에다가
붙여넣기를 하면 됩니다.
'업무 능력 향상 > 엑셀 VBA 활용' 카테고리의 다른 글
색상 개수와 색깔 표시하기 (동일 시트) - CountIF 함수 이용 (0) | 2014.02.01 |
---|---|
업체별 공급가액 합계 및 정렬 2 (SUMIF 함수 사용) (0) | 2014.02.01 |
조건을 만족하지 않는 행 삭제 (0) | 2014.01.30 |
[VBA] 찾는 글자색에 색상을 주는 FIND VBA (7) | 2014.01.29 |
빈행 숨기기 (0) | 2014.01.29 |