我正在尝试保存数据透视表行字段,数据字段,页面字段等,以及不同数据透视表过滤器的设置;为了保存数据透视表“配置”并在需要时重新应用。 所以我主要保存了数组(rowfields,columnfields等)中的所有东西,但是当我尝试运行PivotField的PivotItems时,VBA返回所有PivotItems.Visible = False(Add Watch)。直接通过数据透视表过滤器检查表明并非所有都是错误的。这对我来说似乎很奇怪,我不知道我的错误在哪里。
我需要这个,因为知道哪些项目是可见的= True或False将允许我将True添加到数组并在需要时重新应用。现在,我只是在单元格中粘贴pi.Name来检查VBA是否确实识别出哪个PivotItems.Visible为“True”。
这是我的代码的一部分:
Sub pivot_filters()
Dim pf As pivotfield, pt As PivotTable, pi As PivotItem
Dim f As Integer, i As Integer, k As Integer
Set pt = Worksheets("Test Pivot Sheet").PivotTables("TestPivot")
f = Worksheets("Test Pivot Sheet").PivotTables("TestPivot").PivotFields.Count
k = Worksheets("Test Pivot Sheet").PivotTables("TestPivot").PivotFields("Activity").PivotItems.Count
With Worksheets("Test Pivot Sheet").PivotTables("TestPivot").PivotFields("Activity")
For Each pi In .PivotItems
If pi.Visible = True Then
Worksheets("Sheet5").Range("G2").Value = pi.Name
End If
Next pi
End With
End Sub