2012-12-16 4 views
0

오후에 학교 활동을위한 DB를 구축 중입니다. 사용자가 클래스 유형 및/또는 연령 그룹 및/또는 학년을 필터링 할 수있는 피벗 테이블을 제어하는 ​​양식을 통해 검색 옵션을 만들려고합니다.Excel에서 자동으로 피벗 테이블 필터링

나는이 코드를 VBA에 작성 했으므로 작동하지 않습니다. 위의 (클래스 유형과 같은) 필터 중 하나에서만 코드를 작성하려고했지만 작동했을 때 3 개의 필터 옵션으로 확장했을 때 작동했습니다. 옵션 중 하나에 값이 삽입되지 않으면 실패합니다.

search_class.Hide 
ActiveSheet.PivotTables("PivotSearchClass").PivotFields("class type").ClearAllFilters 

If IsNull(Range("type_search").Value) Then 
    ActiveSheet.PivotTables("PivotSearchClass").PivotFields("class type").CurrentPage = "(All)" 
Else: ActiveSheet.PivotTables("PivotSearchClass").PivotFields("class type").CurrentPage = Range("type_search").Value 
End If 

type_box = "pick a class type" 

ActiveSheet.PivotTables("PivotSearchClass").PivotFields("group age").ClearAllFilters 

If IsNull(Range("target_search").Value) Then 
    ActiveSheet.PivotTables("PivotSearchClass").PivotFields("group age").CurrentPage = "(All)" 
Else: ActiveSheet.PivotTables("PivotSearchClass").PivotFields("group age").CurrentPage = Range("target_search").Value 
End If 

target_box = "pick a group age" 

ActiveSheet.PivotTables("PivotSearchClass").PivotFields("school year").ClearAllFilters 

If IsNull(Range("year_search").Value) Then 
    ActiveSheet.PivotTables("PivotSearchClass").PivotFields("school year").CurrentPage = "(All)" 
Else: 
ActiveSheet.PivotTables("PivotSearchClass").PivotFields("school year").CurrentPage = Range("year_search").Value 
End If 

year_search_box = "pick a school year" 

ActiveSheet.PivotTables("PivotSearchClass").PivotCache.Refresh 

누구나 문제는 무엇이며 어떻게 수정해야합니까?

답변

1

나는 당신이 테스트를 변경하는 경우가 작동합니다 생각 중 하나

If IsEmpty(Range("type_search").Value) 

또는

If Range("type_search").Value = "" 

IsNull

는 변형 변수가 null 값을 포함하는지 여부를 테스트하는 데 사용됩니다하지 않습니다 빈 칸이나 채워진 셀에서 참이어야한다.

+0

안녕하세요 더그 작품! 감사! – user1123417

+0

다행입니다. 답변 옆에있는 체크 표시를 클릭하여 도움을 받으십시오. –

0

필자는이 컴퓨터에 Excel이 없으며 피벗 테이블이 내 약점이지만 본인이 혼자만 생각하기 때문에 도움을 요청할 것입니다. 먼저 귀하의 스크립트가 실제로 "진실한"사례 인 if 문을 실행하는지 확인한 다음 CurrentPage의 값을 편집하여 문제가 있는지 (즉, "(모든)"값을 다른 것으로 변경하십시오). 오류는 어디에 있으며 오류 설명은 무엇입니까?

+0

답변 해 주셔서 감사합니다. 범위 ("type_search"). 값 = "" 해결했습니다! – user1123417

관련 문제