2012-01-27 6 views
1

VBA를 사용하여 Excel 2003에서 피벗 테이블을 필터링하는 방법은 무엇입니까?Excel 2003의 피벗 테이블

는 Excel 2007에서 나는이 매크로를 실행할 수 있지만 PivotFilters는

Dim ws As Worksheet: Set ws = Sheets("Sheet1") 
ws.PivotTables("PivotTable1").PivotFields("Date").PivotFilters.Add _ 
     Type:=xlSpecificDate, Value1:="26/01/2012" 

업데이트 XL 2003에서 구현되지 않은 : 나는 오류 "런타임 오류 '1004'수 . PivotItem 클래스의 Visible 속성을 설정할 수 없습니다. 워크 시트

으로

서브 필터() 희미한 PvtItem PivotItem 희미한으로 WS

Set ws = Sheets("pivot") 

'~~> Show All 
For Each PvtItem In ws.PivotTables("PivotTable1").PivotFields("Date").PivotItems 
    PvtItem.Visible = True 
Next 

'~~> Show Only the relevant 
For Each PvtItem In ws.PivotTables("PivotTable1").PivotFields("Date").PivotItems 
    If PvtItem.Value <> "26/01/2012" Then PvtItem.Visible = False '<-- error here 
Next 

최종 하위

http://wikisend.com/download/426518/pivot.xls

답변

1

VBA 2003 년 PivotField를 필터링하려면, 당신은/해제를 설정해야 .Visible 속성. 내가 Microsoft 지원 엔지니어를 사용하고, 알려진 버그 것 같다 "Visible 속성 PivotItem 클래스를 설정 할 수 없습니다"예를 들면 다음과 같습니다

Option Explicit 

Sub Filter() 
    Dim PvtItem As PivotItem 
    Dim ws As Worksheet 

    On Error GoTo Whoa1 

    Set ws = Sheets("pivot") 

    '~~> Show All 
    For Each PvtItem In ws.PivotTables("PivotTable1").PivotFields("Date").PivotItems 
     PvtItem.Visible = True 
    Next 

    On Error GoTo Whoa2 '<~~ If no match found in Pivot 

    '~~> Show Only the relevant 
    For Each PvtItem In ws.PivotTables("PivotTable1").PivotFields("Date").PivotItems 
     If Format(PvtItem.Value, "DD/MM/YYYY") <> Format(Range("today"), "DD/MM/YYYY") Then 
      PvtItem.Visible = False 
     End If 
    Next 

    Exit Sub 
Whoa1: 
    MsgBox Err.Description 
    Exit Sub 
Whoa2: 
    '~~> Show All 
    For Each PvtItem In ws.PivotTables("PivotTable1").PivotFields("Date").PivotItems 
     PvtItem.Visible = True 
    Next 
End Sub 
+0

나는 오류가 발생합니다. 내가 가진 해결책을 알려 드리겠습니다. http://social.msdn.microsoft.com/Forums/en/isvvba/thread/01fca3d7-944e-4fb6-bf9b-0e7892b0234c – Damian

+0

죄송합니다, 이해가 안됩니까? 요즘 말하는 "버그"는 무엇입니까? –

+0

정렬 순서를 수동으로 설정하려고했으나 수술이 아닌 방향으로도 도움이되었습니다. – Damian

관련 문제