如果工作簿具有多个工作表,其中多个数据透视表具有多个数据透视表,那么如何仅循环使用特定数据透视表的数据透视表?例如,如果我想更改字段,那么只有那些数据透视表有。
我显然可以遍历工作簿中的每个数据透视表并检查其SourceData,但我想知道是否有类似的内容:
For Each pt In ThisWorkbook.PivotCaches("this").pivottables_list
Next
答案 0 :(得分:1)
奇怪的是,没有直接的方法可以从PivotCache中获得它。相反,您需要遍历工作簿中的每个PT,并查看它的PivotCache是否与您感兴趣的PivotCache相同,如下所示:
Option Explicit
Sub Loop_PivotCache(ptExample As PivotTable)
Dim pt As PivotTable
Dim pc As PivotCache
Set pc = ptExample.PivotCache
For Each wks In ActiveWorkbook.Worksheets
For Each pt In wks.PivotTables
If pt.PivotCache.Index = pc.Index Then
Debug.Print pt.Name
End If
Next pt
Next wks
End Sub
像这样称呼该潜艇:
Sub Caller()
Loop_PivotCache Worksheets("SomeWorksheet").PivotTables("SomePivotTable")
End Sub
问题:您实际上想对每个数据透视表做什么?根据您要执行的操作,从效率角度来看,您可能需要了解一些内容。