使多个透视项可见

时间:2018-01-23 10:17:21

标签: excel vba excel-vba excel-2010 pivot-table

我想让一些枢轴物品可见而其他物品看不见。但问题是某些项目在pivotfields中不可用。未来几个月,GE,KG,KZ,MN,AZ,TM将成为可用的国家。

但我想创建一个代码。如果项目存在于枢轴场中,那么它必须是可见的,它必须是隐形的。我该如何更改代码。帮帮我

Application.ScreenUpdating = False
      With ActiveSheet.PivotTables("MainTable").PivotFields("Country Code")
        For i = 1 To .PivotItems.Count
          .PivotItems(i).Visible = False
          .PivotItems("DE").Visible = True
        Next i
        .PivotItems("UA").Visible = True 'Available
        .PivotItems("BY").Visible = True 'Available
        .PivotItems("MD").Visible = True 'Available
        .PivotItems("GE").Visible = True 'Not available
        .PivotItems("KG").Visible = True 'Not available
        .PivotItems("KZ").Visible = True 'Not available
        .PivotItems("MN").Visible = True 'Not available
        .PivotItems("AZ").Visible = True 'Not available
        .PivotItems("TM").Visible = True 'Not available
        .PivotItems("DE").Visible = False
      End With
    Application.ScreenUpdating = True

1 个答案:

答案 0 :(得分:1)

我这样做:

Application.ScreenUpdating = False
With ActiveSheet.PivotTables("MainTable").PivotFields("Country Code")
  For Each Pi In .PivotItems
    Pi.Visible = InStr(1, "UA,BY,MD,GE,KG,KZ,MN,AZ,TM", Pi.Name) > 0
  Next
End With
Application.ScreenUpdating = True

为什么不扫描所有可用的PivotItem名称,并根据它们在字符串中的存在来设置其可见性,而不是指定要显示的PivotItem名称列表。