Computer >> 컴퓨터 >  >> 소프트웨어 >> Office

Excel VBA로 자동 필터(AutoFilter)가 있을 경우 제거하는 방법 (예제 7가지)

Microsoft Excel에서는 워크시트나 Excel 테이블에서 자동 필터(AutoFilter)를 제거할 수 있는 다양한 방법을 제공합니다. 이 글에서는 VBA 코드를 사용하여 Excel에서 자동 필터가 존재할 경우 이를 제거하는 7가지 방법을 소개합니다.

아래 링크에서 예제 파일을 내려받아 직접 따라 해보실 수 있습니다.

VBA로 자동 필터 제거하기: 7가지 예제

1. 활성 워크시트의 자동 필터 제거하기

아래 스크린샷은 활성 워크시트에 적용된 자동 필터를 보여줍니다. VBA 코드를 사용해 이 자동 필터를 제거해 보겠습니다.

Excel VBA로 자동 필터(AutoFilter)가 있을 경우 제거하는 방법 (예제 7가지)

활성 워크시트에서 자동 필터를 제거하려면 아래 단계를 따르세요.

❶ 먼저 ALT + F11 키를 눌러 VBA 편집기를 엽니다.

❷ 삽입(Insert) >> 모듈(Module)을 선택합니다.

Excel VBA로 자동 필터(AutoFilter)가 있을 경우 제거하는 방법 (예제 7가지)

❸ 아래 VBA 코드를 복사합니다.

Public Sub RemoveAFActiveWorksheet()

  If ActiveSheet.AutoFilterMode Then
     ActiveSheet.AutoFilterMode = False
  End If

End Sub

❹ VBA 편집기에 코드를 붙여넣고 저장합니다.

Excel VBA로 자동 필터(AutoFilter)가 있을 경우 제거하는 방법 (예제 7가지)

코드 설명

  • Public Sub RemoveAFActiveWorksheet라는 Sub 프로시저를 생성했습니다.
  • IF 문으로 자동 필터의 존재 여부를 확인하고, 존재하면 AutoFilterMode를 False로 설정하여 자동 필터를 제거합니다.

❺ 활성 워크시트로 돌아간 후 ALT + F8을 눌러 매크로 대화상자를 엽니다.

❻ RemoveAFActiveWorksheet 매크로를 선택하고 실행(Run) 버튼을 클릭합니다.

Excel VBA로 자동 필터(AutoFilter)가 있을 경우 제거하는 방법 (예제 7가지)

이제 자동 필터가 제거되어 모든 데이터가 표시되는 것을 확인할 수 있습니다.

Excel VBA로 자동 필터(AutoFilter)가 있을 경우 제거하는 방법 (예제 7가지)

더 읽기: Excel VBA로 자동 필터 켜짐 여부 확인하기 (4가지 쉬운 방법)

2. VBA로 모든 워크시트의 자동 필터 삭제하기

아래 그림을 보면 두 개의 워크시트 모두에 자동 필터가 적용되어 있습니다. 이제 통합 문서의 모든 워크시트에서 자동 필터를 제거하는 VBA 코드를 작성해 보겠습니다.

Excel VBA로 자동 필터(AutoFilter)가 있을 경우 제거하는 방법 (예제 7가지)

통합 문서의 모든 워크시트에서 자동 필터를 삭제하려면 아래 단계를 따르세요.

❶ 먼저 ALT + F11 키를 눌러 VBA 편집기를 엽니다.

❷ 삽입(Insert) >> 모듈(Module)을 선택합니다.

Excel VBA로 자동 필터(AutoFilter)가 있을 경우 제거하는 방법 (예제 7가지)

❸ 아래 VBA 코드를 복사합니다.

Public Sub DeleteAFfromallWorksheets()

  Dim xWs1 As Worksheet

  For Each xWs1 In ActiveWorkbook.Worksheets
   If xWs1.AutoFilterMode = True Then
      xWs1.AutoFilterMode = False
   End If
  Next xWs1

End Sub

❹ VBA 편집기에 코드를 붙여넣고 저장합니다.

Excel VBA로 자동 필터(AutoFilter)가 있을 경우 제거하는 방법 (예제 7가지)

코드 설명

  • For 루프를 사용하여 각 워크시트에서 자동 필터를 검색합니다.
  • IF 문으로 자동 필터의 존재 여부를 확인하고, 존재하면 AutoFilterMode를 False로 설정하여 제거합니다.

❺ 워크시트로 돌아간 후 ALT + F8을 눌러 매크로 대화상자를 엽니다.

❻ DeleteAFfromallWorksheets 매크로를 선택하고 실행(Run) 버튼을 클릭합니다.

Excel VBA로 자동 필터(AutoFilter)가 있을 경우 제거하는 방법 (예제 7가지)

이제 아래 그림과 같이 통합 문서의 모든 워크시트에서 자동 필터 아이콘이 제거된 것을 확인할 수 있습니다.

Excel VBA로 자동 필터(AutoFilter)가 있을 경우 제거하는 방법 (예제 7가지)

3. 테이블의 특정 열에서 자동 필터 지우기

아래 그림에서는 테이블의 첫 번째 열에만 자동 필터가 적용되어 있습니다. 이 방법에서는 Excel 테이블의 단일 열에서 자동 필터를 지우는 코드를 작성합니다.

Excel VBA로 자동 필터(AutoFilter)가 있을 경우 제거하는 방법 (예제 7가지)

방법은 다음과 같습니다.

❶ 먼저 ALT + F11 키를 눌러 VBA 편집기를 엽니다.

❷ 삽입(Insert) >> 모듈(Module)을 선택합니다.

Excel VBA로 자동 필터(AutoFilter)가 있을 경우 제거하는 방법 (예제 7가지)

❸ 아래 VBA 코드를 복사합니다.

Sub DeleteAFSingleColumnfromTable()

    Dim xWs1 As Worksheet
    Dim xTableName1 As String
    Dim xLT1 As ListObject

    xTableName1 = "TableA"
    Set xWs1 = Sheets("MyTable1")
    Set xLT1 = xWs1.ListObjects(xTableName1)
    xLT1.Range.AutoFilter Field:=1

End Sub

❹ VBA 편집기에 코드를 붙여넣고 저장합니다.

Excel VBA로 자동 필터(AutoFilter)가 있을 경우 제거하는 방법 (예제 7가지)

코드 설명

  • 먼저 변수 3개를 선언했습니다.
  • 그다음 테이블 이름을 입력하고 시트 이름을 설정(Set)했습니다.
  • ListObjects 속성을 사용하여 테이블의 모든 내용을 표시하도록 했습니다.
  • 마지막으로 AutoFilter Field에 테이블 열 인덱스를 입력했습니다.

❺ 워크시트로 돌아간 후 ALT + F8을 눌러 매크로 대화상자를 엽니다.

❻ DeleteAFSingleColumnfromTable 매크로를 선택하고 실행(Run) 버튼을 클릭합니다.

Excel VBA로 자동 필터(AutoFilter)가 있을 경우 제거하는 방법 (예제 7가지)

실행 후에는 테이블의 첫 번째 열에서 더 이상 자동 필터가 나타나지 않습니다.

Excel VBA로 자동 필터(AutoFilter)가 있을 경우 제거하는 방법 (예제 7가지)

4. 테이블의 여러 열에서 자동 필터 제거하기

아래 그림은 테이블의 첫 번째와 두 번째 열에 자동 필터 아이콘이 표시된 상태입니다. 이 방법을 따라 하면 VBA로 테이블의 두 열에서 자동 필터를 제거할 수 있습니다.

Excel VBA로 자동 필터(AutoFilter)가 있을 경우 제거하는 방법 (예제 7가지)

이제 Excel 테이블의 여러 열에서 자동 필터를 지우는 방법을 알아보겠습니다.

❶ 먼저 ALT + F11 키를 눌러 VBA 편집기를 엽니다.

❷ 삽입(Insert) >> 모듈(Module)을 선택합니다.

Excel VBA로 자동 필터(AutoFilter)가 있을 경우 제거하는 방법 (예제 7가지)

❸ 아래 VBA 코드를 복사합니다.

Sub DeleteAFMultiColumnsfromTable()

    Dim xWs1 As Worksheet
    Dim xTableName1 As String
    Dim xLT1 As ListObject

    xTableName1 = "TableA"
    Set xWs1 = Sheets("MyTable1")
    Set xLT1 = xWs1.ListObjects(xTableName1)

    xLT1.Range.AutoFilter Field:=1
    xLT1.Range.AutoFilter Field:=2

End Sub

❹ VBA 편집기에 코드를 붙여넣고 저장합니다.

Excel VBA로 자동 필터(AutoFilter)가 있을 경우 제거하는 방법 (예제 7가지)

코드 설명

  • 먼저 변수 3개를 선언했습니다.
  • 그다음 테이블 이름을 입력하고 시트 이름을 설정(Set)했습니다.
  • ListObjects 속성을 사용하여 테이블의 모든 내용을 표시하도록 했습니다.
  • 마지막으로 AutoFilter Field에 두 개의 테이블 열 인덱스를 입력했습니다.

❺ 워크시트로 돌아간 후 ALT + F8을 눌러 매크로 대화상자를 엽니다.

❻ DeleteAFMultiColumnsfromTable 매크로를 선택하고 실행(Run) 버튼을 클릭합니다.

Excel VBA로 자동 필터(AutoFilter)가 있을 경우 제거하는 방법 (예제 7가지)

코드 실행 후 여러 열에서 자동 필터가 제거된 것을 확인할 수 있습니다.

Excel VBA로 자동 필터(AutoFilter)가 있을 경우 제거하는 방법 (예제 7가지)

더 읽기: [해결법] Range 클래스의 AutoFilter 메서드 오류 수정하기 (5가지 해결책)

5. Excel VBA로 테이블 전체의 자동 필터 지우기

아래 그림처럼 테이블 전체에 자동 필터가 적용되어 있고 이를 모두 제거하고 싶다면 이 방법을 활용하세요.

Excel VBA로 자동 필터(AutoFilter)가 있을 경우 제거하는 방법 (예제 7가지)

❶ 먼저 ALT + F11 키를 눌러 VBA 편집기를 엽니다.

❷ 삽입(Insert) >> 모듈(Module)을 선택합니다.

Excel VBA로 자동 필터(AutoFilter)가 있을 경우 제거하는 방법 (예제 7가지)

❸ 아래 VBA 코드를 복사합니다.

Sub RemoveAFfromEntireTable()

  Dim xWs1 As Worksheet
  Dim xTable1 As String
  Dim xTable2 As ListObject

  xTable1 = "TableB"
  Set xWs1 = ActiveSheet
  Set xTable2 = xWs1.ListObjects(xTable1)
  xTable2.AutoFilter.ShowAllData

End Sub

❹ VBA 편집기에 코드를 붙여넣고 저장합니다.

Excel VBA로 자동 필터(AutoFilter)가 있을 경우 제거하는 방법 (예제 7가지)

코드 설명

  • 먼저 변수 3개를 선언했습니다.
  • 그다음 테이블 이름을 입력하고 시트 이름을 ActiveSheet로 설정했습니다.
  • ListObjects 속성으로 테이블의 모든 내용을 표시하고, Set 문으로 이를 xTable2에 저장했습니다.
  • 마지막으로 ShowAllData 속성을 사용하여 자동 필터를 해제했습니다.

❺ 테이블이 있는 워크시트로 돌아간 후 ALT + F8을 눌러 매크로 대화상자를 엽니다.

❻ RemoveAFfromEntireTable 매크로를 선택하고 실행(Run) 버튼을 클릭합니다.

Excel VBA로 자동 필터(AutoFilter)가 있을 경우 제거하는 방법 (예제 7가지)

이제 아래 그림과 같이 테이블 전체에서 자동 필터가 제거됩니다.

Excel VBA로 자동 필터(AutoFilter)가 있을 경우 제거하는 방법 (예제 7가지)

6. 암호로 보호된 워크시트의 자동 필터 제거하기

아래 그림의 데이터 집합은 자동 필터가 활성화되어 있고 암호로 보호되어 있습니다. 암호는 7878입니다.

이 방법에서는 이처럼 암호로 보호된 워크시트에서 자동 필터를 제거하는 VBA 코드를 알려드립니다.

Excel VBA로 자동 필터(AutoFilter)가 있을 경우 제거하는 방법 (예제 7가지)

이제 아래 단계를 따르세요.

❶ 먼저 ALT + F11 키를 눌러 VBA 편집기를 엽니다.

❷ 삽입(Insert) >> 모듈(Module)을 선택합니다.

Excel VBA로 자동 필터(AutoFilter)가 있을 경우 제거하는 방법 (예제 7가지)

❸ 아래 VBA 코드를 복사합니다.

Sub RemoveAFwithPass()

Dim UserPwd As String
UserPwd = "7878"

With ActiveSheet
    .Unprotect Password:=UserPwd
    .ShowAllData
    .Protect _
        Contents:=True, _
        AllowFiltering:=True, _
        UserInterfaceOnly:=True, _
        Password:=UserPwd
End With

End Sub

❹ VBA 편집기에 코드를 붙여넣고 저장합니다.

Excel VBA로 자동 필터(AutoFilter)가 있을 경우 제거하는 방법 (예제 7가지)

코드 설명

  • 먼저 변수를 선언하고 암호를 입력했습니다.
  • 그다음 ActiveSheet에서 Unprotect Password에 사용자 암호를 할당했습니다.
  • ShowAllData 속성을 사용하여 숨겨진 데이터를 모두 표시했습니다.
  • 마지막으로 Contents, AllowFiltering, UserInterfaceOnly에 True를 할당하여 보호 설정을 유지하면서 필터링을 허용했습니다.

❺ 암호로 보호된 워크시트로 돌아간 후 ALT + F8을 눌러 매크로 대화상자를 엽니다.

❻ RemoveAFwithPass 매크로를 선택하고 실행(Run) 버튼을 클릭합니다.

Excel VBA로 자동 필터(AutoFilter)가 있을 경우 제거하는 방법 (예제 7가지)

실행 후 자동 필터가 제거되고 아래와 같이 모든 레코드가 표시됩니다.

Excel VBA로 자동 필터(AutoFilter)가 있을 경우 제거하는 방법 (예제 7가지)

7. 암호 없이 보호된 워크시트의 자동 필터 제거하기

아래 그림은 암호 없이 보호된 데이터 집합입니다. 이 방법에서는 암호가 설정되지 않은 보호 워크시트에서 자동 필터를 제거하는 코드를 작성합니다.

Excel VBA로 자동 필터(AutoFilter)가 있을 경우 제거하는 방법 (예제 7가지)

이제 아래 단계를 따르세요.

❶ 먼저 ALT + F11 키를 눌러 VBA 편집기를 엽니다.

❷ 삽입(Insert) >> 모듈(Module)을 선택합니다.

Excel VBA로 자동 필터(AutoFilter)가 있을 경우 제거하는 방법 (예제 7가지)

❸ 아래 VBA 코드를 복사합니다.

Sub RemoveAFwithoutPass()

With ActiveSheet
    .Unprotect
    .ShowAllData
    .Protect _
        Contents:=True, _
        AllowFiltering:=True, _
        UserInterfaceOnly:=True
End With

End Sub

❹ VBA 편집기에 코드를 붙여넣고 저장합니다.

Excel VBA로 자동 필터(AutoFilter)가 있을 경우 제거하는 방법 (예제 7가지)

코드 설명

  • 먼저 ActiveSheet에 With 문을 적용하고 Unprotect 속성으로 잠금을 해제했습니다.
  • 그다음 ShowAllData 속성을 사용하여 숨겨진 데이터를 모두 표시했습니다.
  • 마지막으로 Contents, AllowFiltering, UserInterfaceOnly에 True를 할당하여 보호 설정을 유지하면서 필터링을 허용했습니다.

❺ 활성 워크시트로 돌아간 후 ALT + F8을 눌러 매크로 대화상자를 엽니다.

❻ RemoveAFwithoutPass 매크로를 선택하고 실행(Run) 버튼을 클릭합니다.

Excel VBA로 자동 필터(AutoFilter)가 있을 경우 제거하는 방법 (예제 7가지)

마지막으로 자동 필터가 제거되고 아래와 같이 모든 데이터가 표시됩니다.

Excel VBA로 자동 필터(AutoFilter)가 있을 경우 제거하는 방법 (예제 7가지)

연습 섹션

제공된 Excel 파일 마지막에는 아래 스크린샷과 같은 연습용 시트가 포함되어 있습니다. 이곳에서 이 글에서 소개한 모든 방법을 직접 연습해 볼 수 있습니다.

Excel VBA로 자동 필터(AutoFilter)가 있을 경우 제거하는 방법 (예제 7가지)

결론

지금까지 Excel에서 VBA를 사용하여 자동 필터가 존재할 경우 이를 제거하는 7가지 방법을 살펴보았습니다. 이 글에 첨부된 연습용 통합 문서를 내려받아 모든 방법을 직접 실습해 보시기를 권장합니다. 궁금한 점이 있다면 아래 댓글로 언제든 질문해 주세요. 관련 문의에 최대한 빠르게 답변드리겠습니다. 더 많은 Excel 팁이 필요하시면 저희 웹사이트 Exceldemy를 방문해 주세요.

관련 글

  • Excel VBA로 동일 필드에 여러 조건을 적용한 자동 필터 사용하기 (4가지 방법)
  • Excel VBA로 특정 값과 같지 않은 값을 자동 필터링하는 방법
  • VBA 자동 필터: 오름차순 정렬하기 (3가지 방법)
  • Excel VBA로 자동 필터 후 표시된 행만 복사하는 방법