编写VBA以过滤Excel中的枢轴表项目



如果我编写VBA以自动滤波excel中的枢轴表,则似乎我必须指定每个记录以可见= true或cissible = false。没有办法只指定我要检查的内容吗?

例如:

 With ActiveSheet.PivotTables("PivotTable1").PivotFields("COB_TITLE")
        .PivotItems("CMD GRP").Visible = True
        .PivotItems("G1").Visible = True
        .PivotItems("G2").Visible = True

    End With

而不是

With ActiveSheet.PivotTables("PivotTable1").PivotFields("COB_TITLE")
        .PivotItems("CMD GRP").Visible = True
        .PivotItems("G1").Visible = True
        .PivotItems("G2").Visible = True
        .PivotItems("G3/G5/G3 FIRES/REE/G7/HAST/G9").Visible = False
        .PivotItems("G4").Visible = False
        .PivotItems("G6").Visible = False
        .PivotItems("G8").Visible = False
    .PivotItems("DIV ENG").Visible = False
    End With

我确定我一次录制了一个宏,只有我选择的。

  • 续..

所以我写了这个字符串function VisibleList(strSLIDE),该字符串产生这样的列表:

.PivotItems("HHBN").Visible = False
.PivotItems("CMD GRP").Visible = False
.PivotItems("G1").Visible = True
.PivotItems("G2").Visible = True
.PivotItems("G3/G5/G3 FIRES/REE/G7/HAST/G9").Visible = True
.PivotItems("DIV ARTY").Visible = False
.PivotItems("G3 FIRES").Visible = False
.PivotItems("G4").Visible = True

我希望我能像这样嵌入它:

strPivotItems = VisibleList("DIV STAFF")
    With ActiveSheet.PivotTables("PivotTable1").PivotFields("COB_TITLE")
         strPivotItems
    End With 

我假设我可以像嵌入SQL一样这样做。有没有办法为VBA生成它?

不确定这是您的意思,而是在下方提供代码:

Option Explicit
Sub FilterPivotItems()
Dim PvtTbl As PivotTable
Dim PvtFld  As PivotField
Dim PvtItm  As PivotItem
' set Pivot Table
Set PvtTbl = ActiveSheet.PivotTables("PivotTable1")
' set Pivot Field to "COB_TITLE"
Set PvtFld = PvtTbl.PivotFields("COB_TITLE")
' loop through all Pivot Items in "COB_TITLE" Pivot Field
For Each PvtItm In PvtFld.PivotItems
    ' check what is the Pivot item Name
    Select Case PvtItm.Name
        Case "CMD GRP", "G1", "G2"  ' <-- visible Filter Items list
            PvtItm.Visible = True
        Case Else
            PvtItm.Visible = False
    End Select
Next PvtItm
End Sub

相关内容

  • 没有找到相关文章

最新更新