2016-08-15 3 views
0

Привет Я пытаюсь показать только 5 отдельных элементов в моей сводной таблице. Стол состоит из около 50 различных предметов, поэтому я хочу скрыть все, кроме этих 5 предметов, но боюсь. Лучший результат, который я могу получить, - это удалить все, а затем отобразить 5 элементов, но поскольку вы не можете удалить все, он всегда оставит последний элемент в таблице. Может ли кто-нибудь помочь мне с этим, пожалуйста?Excel 2003 VBA PivotTable Показать конкретные элементы

Dim pvtitem As PivotItem 

With ActiveSheet.PivotTables("PIV4").PivotFields("MSG TYPE") 
    .PivotItems("TEXT1").Visible = True 
    .PivotItems("TEXT2").Visible = True 
    .PivotItems("TEXT3").Visible = True 
    .PivotItems("TEXT4").Visible = True 
    .PivotItems("TEXT5").Visible = True 

For Each pvtitem In .PivotItems 
    If Not pvtitem.Name Like "TEXT1" Then pvtitem.Visible = False 
    ElseIf Not pvtitem.Name Like "TEXT2" Then pvtitem.Visible = False 
    ElseIf Not pvtitem.Name Like "TEXT3" Then pvtitem.Visible = False 
    ElseIf Not pvtitem.Name Like "TEXT4" Then pvtitem.Visible = False 
    ElseIf Not pvtitem.Name Like "TEXT5" Then pvtitem.Visible = False 
    Next pvtitem 
End With 

ответ

0

попробуйте следующий код (я добавил Select Case, так что вы можете легко добавить/изменить |. Pivot поле «MSG типа» условия фильтра

Option Explicit 

Sub Filter_PivotItems() 

Dim pvtTbl   As PivotTable 
Dim pvtitem   As PivotItem 
Dim pvtFld   As PivotField 

Set pvtTbl = ThisWorkbook.Sheets("PivotTable").PivotTables("PIV4") 

' set Pivot field variable to "MSG TYPE" 
Set pvtFld = pvtTbl.PivotFields("MSG TYPE") 

' lop through all Pivot Items in "MSG TYPE" Pivot Field 
For Each pvtitem In pvtFld.PivotItems 

    Select Case pvtitem.Name 
     Case "TEXT1", "TEXT2", "TEXT3", "TEXT4", "TEXT5" 
      pvtitem.Visible = True 

     Case Else 
      pvtitem.Visible = False 

    End Select 

Next pvtitem 

End Sub 
+0

Спасибо работали лакомство. – BradleyS

Смежные вопросы