programing

테이블에서 필터 지우기

newsource 2023. 4. 15. 08:55

테이블에서 필터 지우기

처음에 데이터가 필터링될 수 있을 때 Excel 테이블의 데이터를 대체하는 매크로를 실행하려고 합니다.

코드는 먼저 필터를 제거한 후 나머지 코드를 실행합니다.

"Autofilter" 명령어를 시도했지만 테이블 범위에 있는 일반 필터 옵션이 표시되지 않아 필터 옵션을 다시 수동으로 생성해야 했습니다(저에게는 별 문제가 되지 않지만 다른 사람들은 이 파일을 사용합니다).

테이블에서 필터를 제거하지 않고 필터를 지울 수 있는 방법이 있습니까?

테이블에서는 단순히ShowAllData그 방법Autofilter오브젝트:

activesheet.listobjects(1).autofilter.showalldata

현재 적용된 필터가 없는 경우에도 오류가 발생하지 않습니다.

이것은 @Rory로부터의 답변(구문을 기억하지 못할 때마다 검색되는 답변)을 확장합니다.테이블에 자동 필터가 포함되어 있지 않을 때 발생하는 오류를 방지합니다.

섹션If Not .AutoFilter Is Nothing는 ListObject(표)의 AutoFilter 오브젝트 속성을 확인합니다.만약 그렇다면Is Nothing그 테이블에서 자동 필터가 제거되었어

With Activesheet.Listobjects(1)
    If not .AutoFilter Is Nothing Then .AutoFilter.ShowAllData
End With

안녕하세요, 이 워크시트("Sheet1")를 사용합니다.리스트 오브젝트(1)Range.AutoFilter = False" 및 필터가 이미 적용된 경우 필터를 적용하기 전에 필터가 적용되지 않으면 필터가 제거됩니다.

내가 찾은 건...Clear All Data" 메서드가 실패합니다.

매우 우아한 솔루션은 아니지만 필드별로 작동하지만(테이블 전체를 수행해야 하는 경우 매우 번거롭지만), 필드 하나만 있는 경우(예: 이 예에서는 필드 2) 와일드카드를 사용하는 것이 좋습니다.

ActiveSheet.ListObjects(1).Range.AutoFilter Field:=2, Criteria1:="=*"
ActiveSheet.ShowAllData

또는

Cells.AutoFilter

언급URL : https://stackoverflow.com/questions/33197641/clear-filter-from-table