테이블로 설정한 데이터의 필터링 유무를 알 수 있을까요?
VBA
작성자
나도_엑셀
작성일
2022-02-28 11:43
조회
116
일반적인 오토필터의 유무를 확인하려면,
Worksheet의 매소드인 FilterMode를 사용하는 것으로 알고 있고, 그렇게 사용해 왔습니다. 하지만, 이번 프로젝트에서는 테이블을 사용해서 똑 같은 내용을 구현해야 합니다. 그러나, 테이블에서 필터링이 되었는지 확인을 할 수 있는 매소드를 모르겠습니다. 간단히 말하면, FilterMode나, ShowAllData 같은 기능을 테이블에서도 가능한지 알고 싶습니다. 가능하다면, 그 매소드도 같이 알고 싶습니다.
고수님의 답변 기다리겠습니다.
참고로, 첨부 파일은 테이블인 경우와, 테이블이 아닌 경우의 차이점을 보이려고, 임의로 작성한 샘플 파일입니다. 정상 동작하는 함수와, 에러가 나는 함수도 같이 있으니, 파일의 내용을 참고하시면, 더욱 내용을 파악하는데 도움이 될 것이라고 생각합니다. 제가 해결한 방법은 정말 꼼수 입니다.
전체 6,488
번호 | 카테고리 | 제목 | 작성자 | 작성일 | 추천 | 조회 |
[🏆 진짜쓰는 실무엑셀 스터디] 1기 - 우수 졸업생 및 후기, 축하합니다! (8)
![]() ![]() |
![]() ![]() |
2022.04.30 | 10 | 1278 | ||
공지사항 | 함수/공식 |
⭐ [더 나은 커뮤니티 문화를 위한 Q&A 글 작성 규칙] ⭐
(65)
오빠두엑셀
|
2021.10.28
|
추천 81
|
조회 4592
|
![]() ![]() |
2021.10.28 | 81 | 4592 |
34477 | 문서서식 |
New 수식 복사 질문드려요.. ㅠㅠ 불금 퇴근하고싶습니다...
![]() ![]() |
![]() |
2022.05.27 | 0 | 27 |
34473 | VBA |
New 비고란에서 휴대폰번호 추출하기에 관해 문의드립니다.
![]() ![]() |
![]() |
2022.05.27 | 0 | 26 |
34472 | 기능/도구 |
New 스핀단추에서 증분변경시 0.1 씩 증감할려면 어떻게 해야 할까요?
(1)
![]() |
![]() |
2022.05.27 | 0 | 24 |
34471 | 함수/공식 |
New 조건부서식 중복 2개이상 및 2개일때 서식좀 봐주세요 궁금합니다.
![]() ![]() |
![]() |
2022.05.27 | 0 | 31 |
34469 | 문서서식 |
New 표의 행렬 변경
![]() ![]() |
![]() |
2022.05.27 | 0 | 28 |
34465 | 차트/그래프 |
New 간트차트에 오늘 표시하는 방법 질문드려요
![]() |
![]() |
2022.05.27 | 0 | 27 |
34464 | VBA |
New Vba로 수식을 입력하려는데 오류가 납니다.
(1)
![]() |
![]() |
2022.05.27 | 0 | 29 |
34451 | 함수/공식 |
New 제품별 코드 중복/단독 확인함수
![]() ![]() |
![]() |
2022.05.27 | -1 | 46 |
34450 | VBA |
New VBA를 활용한 최단거리 계산(Pathfinder,카카오맵)
![]() ![]() |
![]() |
2022.05.27 | 0 | 33 |
34448 | 함수/공식 |
New countif 다양한 조건으로 만들고 싶어요~
![]() ![]() |
![]() |
2022.05.27 | 0 | 44 |
34444 | 기능/도구 |
New 엑셀 빠른 도구 모음에 있는 '조명'이 무슨 기능인지 아시는분 계신가요?
![]() |
![]() |
2022.05.26 | 0 | 43 |
34440 | 함수/공식 |
New 고객 리텐션, 접속 일수에 맞춰 데이터를 합산하는 함수/VBA 문의!
![]() ![]() |
![]() |
2022.05.26 | 0 | 21 |
34439 | 차트/그래프 |
New 체크박스 선택에 따라 값이 바뀌는 차트의 데이터레이블 표시 문제 관련
![]() ![]() |
![]() |
2022.05.26 | 0 | 24 |
34437 | 함수/공식 |
New 국가만 찾아 올련면
![]() ![]() |
![]() |
2022.05.26 | 0 | 40 |
34433 | 함수/공식 |
New 함수관련 질문있습니다.
![]() |
![]() |
2022.05.26 | 0 | 31 |
34427 | 함수/공식 |
New 특정 공휴일 제외 후 2달 뒤 날짜를 구할수 있는 함수 식이 있을까요?
(1)
![]() |
![]() |
2022.05.26 | 0 | 42 |
34417 | 피벗테이블 |
New 피벗테이블 외부 데이터 참조 후 새로고침 할 때 자꾸 암호를 입력하라고 떠요..
(2)
답변완료
![]() |
![]() |
2022.05.26 | 0 | 35 |
34416 | 함수/공식 |
New 날짜/시간 차이를 구하려면 어떻게 하면 좋을까요?
![]() ![]() |
![]() |
2022.05.26 | 0 | 41 |
34415 | VBA |
New VBA코드로 자동채우기 할때 유동범위는 어떻게 하나요
![]() ![]() |
![]() |
2022.05.26 | 1 | 39 |
34414 | 함수/공식 |
New 금지어 삭제하는 함수 (특정텍스트 범위내의 값을 제거 후 값 불러오기)
![]() ![]() |
![]() |
2022.05.26 | 0 | 42 |
34406 | 함수/공식 |
New sum 함수 오류?
![]() ![]() |
![]() |
2022.05.25 | 0 | 52 |
34405 | VBA |
New 중복데이터가 많은데 맨 위에 있는 행의 데이터만 남길 수 있는 방법이 있을까요?
![]() ![]() |
![]() |
2022.05.25 | 0 | 66 |
34402 | VBA |
New vba 특정문자 입력시 현재시간 구동 관련
![]() ![]() |
![]() |
2022.05.25 | 0 | 46 |
34400 | 함수/공식 |
New 다른 셀 값 참조시 결과값이 0으로만 나오는 현상 문의
![]() ![]() |
![]() |
2022.05.25 | 0 | 46 |
34395 | VBA |
New 조건이 맞을 경우 범위데이터 이동 or 복사,삭제 문의
![]() ![]() |
![]() |
2022.05.25 | 0 | 54 |
34392 | 함수/공식 |
New 다른 파일을 참조하여 합계를 구하는데, 그 참조 파일의 이름이 바뀐다면?
(1)
![]() |
![]() |
2022.05.25 | 0 | 35 |
34391 | 기능/도구 |
New F1 키 누르면 나오는 도움말 끄는 단축키는 없나요?
(5)
![]() |
![]() |
2022.05.25 | 0 | 47 |
34390 | 함수/공식 |
New 셀이 빈 경우 텍스트조인이 실행되지 않도록 하는 방법
![]() ![]() |
![]() |
2022.05.25 | 0 | 58 |
34387 | VBA |
New 개별공시지가조회 셀레니움
![]() ![]() |
![]() |
2022.05.25 | 0 | 45 |
34378 | 기능/도구 |
특정 글자의 데이터만 따로 분리할 수 있는 방법이 있을까요?
(9)
답변완료
![]() |
![]() |
2022.05.25 | -1 | 79 |
첨부파일을 열어보진 않았는데 질문 내용이 워크시트의 필터링 여부가 아니라 "테이블(표)"의 필터링 사용 여부를 찾으시는 게 맞다면 이렇게 해보세요.
잘 알고 계신 내용일 수 있지만 참고로 덧붙여 보면,
If ActiveSheet.FilterMode = True Then ActiveSheet.ShowAllData
= True는 생략 가능
If ActiveSheet.AutoFilterMode Then ActiveSheet.UsedRange.AutoFilter
▶ Worksheet.FilterMode 속성
: 워크시트에서 데이터가 필터링되고 있는지 여부를 나타내는 값을 가져옵니다.
▶ Worksheet.AutoFilterMode 속성
: 워크시트에서 필터링이 현재 사용되는지(즉, 필터 드롭다운 화살표가 현재 표시되는지) 여부를 나타내는 값을 가져오거나 설정합니다.
즉, FilterMode 는 AutoFilter가 된 상태에서 데이터가 필터링 되었으면 True값으로 나타나고
AutoFilterMode 는 데이터가 필터가 되었음 여부를 떠나 AutoFilter가 장착되어 있으면 True값을 보내줍니다.
@나는나 님 If ActiveSheet.ListObjects(1).ShowAutoFilter Then
해당 소스는 조건(필터링(화살표))을 만족해도, 그냥 넘어가네요.
안되는 것 같습니다.
아래와 같이 수정후 정상 동작하네요.
@수이니 님 답변 감사합니다.
저도 같은 방법을 생각해보았습니다.
하지만, 저렇게 하면, Position 인덱스에 대해서만, 필터가 해제가 됩니다.
제가 원하는 모든 인덱스에 대해서, 필터링이 해제되는 것은 어렵습니다. 만약에 하려고 한다면, 모든 인덱스에 위와 같은 명령어를 넣어야 하겠지요. 제가 필요한 것은 ShowAllData와 같이 모든 인덱스에 대해서, 필터가 해제되기를 원합니다. 그래서, 꼼수 같은 것을 쓴 것입니다. 꼼수는 단 두 줄이면 해결이 됩니다.
@나도_엑셀 님
위 코드를 활용해보세요.
@수이니 님 답변 감사합니다.
적어주신 소스를 사용해서, 실행하니 잘 됩니다.
( 시행착오를 거치니, 테이블을 다시 엑티베이트 시키는 것이 중요한 것이었습니다. 셀 선택을 테이블 범위로 하면, ShowAllData 매소드가 기동하는 것 같습니다. )
좋은 것을 배웠습니다. 정말 감사드립니다.
복 받으실 거예요. ^^
필터링 여부 문제는 자력으로 해결했습니다.
시트에 대해서, 리스트 오브젝트의 값을 찾아보니, .AutoFilter.FilterMode 가 있어서, 소스에 적용해 보니, 원하는 대로 움직여 줍니다.
지금까지 답변 주신 분들 다시 한번 감사드립니다.
소스를 적어 둡니다.