通过VBA返回到原始数据透视表视图

我明白,这是非常复杂的B / C数据透视表根据用例可能会有很大的不同,但是我希望find一种方法,让我基本上纪念当前的数据透视表的观点,然后再回到它我钻了之后。 在最高级别,单击一个button,在我打开文件时将数据透视表重置为原始状态。

我知道有可能有几种方法来处理这个问题(包括只是复制到一张新纸),但我希望有一个通用的方式来做到这一点,不需要添加一个新的工作表。

谢谢! 杰里米

是的,但不会超级容易。

我只是使用macroslogging器,同时从数据构build一个简单的数据透视表。 我懂了:

Sub Macro1() With ActiveSheet.PivotTables("PivotTable1").PivotFields("A") .Orientation = xlRowField .Position = 1 End With With ActiveSheet.PivotTables("PivotTable1").PivotFields("B") .Orientation = xlColumnField .Position = 1 End With ActiveSheet.PivotTables("PivotTable1").AddDataField ActiveSheet.PivotTables( _ "PivotTable1").PivotFields("C"), "Sum of C", xlSum End Sub 

从logging的macros中,我们可以看到Pivot表对象具有像PivotFields和DataFields这样的属性。 您必须遍历数据透视表对象中各个属性中的所有相关项目,然后将这些数据存储在某处。 可以将其序列化为隐藏的工作表或将其存储在全局VBAvariables中。

数据透视表对象的文档可以在这里find 。