개발노트/VBA
[VBA] AutoFilter 기능으로 조건에 해당하는 데이터 필터링
lovvepearl
2024. 4. 4. 17:22
Function filterData()
On Error GoTo RESULT
Application.ScreenUpdating = False '업데이트 방지'
Application.DisplayAlerts = False '팝업 무시'
Sheets(1).Select
Set rawData = Sheets(1).UsedRange '데이터 추출하고자 하는 시트'
'숨기기 취소'
Cells.EntireColumn.Hidden = False
'필터 적용되어있는 경우, 필터 해제'
If ActiveSheet.AutoFilterMode Then
ActiveSheet.UsedRange.AutoFilter
End If
'아래 조건에 해당하는 시트 데이터 필터링'
With rawData
.AutoFilter 7, "법정·필수" '7번째 열 값이 법정·필수인 데이터만 필터링'
.AutoFilter 2, "<> ", xlAnd, "<>본사" '2번째 열 값이 공란이 아닌 경우와 본사가 아닌 경우 모두 필터링'
.AutoFilter 3, "<>관리자", xlAnd, "<>테스트" '3번째 열 값이 관리자가 아닌 경우와 테스트가 아닌 경우 모두 필터링'
End With
'필터링 완료한 데이터 복사 후 붙여넣기'
Sheets(1).UsedRange.Copy Destination:=Sheets(2).Range("A1")
'업데이트 및 팝업 활성화'
Application.ScreenUpdating = True
Application.DisplayAlerts = True
RESULT:
If Err.Number <> 0 Then
filterData = Err.Number
Else
filterData = "성공"
End If
End Function