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

时间:2016-06-22 16:13:05

标签: excel vba pivot-table

据我所知,这是非常复杂的b / c数据透视表可能会根据用例情况有所不同,但我希望找到一种方法可以让我基本上记住数据透视表的当前视图,然后去我钻了之后回到它。在最高级别,单击一个按钮,在我打开文件时将枢轴重置回其原始状态。

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

谢谢! 杰里米

1 个答案:

答案 0 :(得分:1)

是的,但这不容易。

我刚从构建数据构建一个简单的数据透视表时使用了宏录制器。我明白了:

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

从记录的宏中我们可以看到Pivot表对象具有像PivotFields和DataFields这样的属性。您必须遍历数据透视表对象中各种属性中的所有相关项,然后将该数据存储在某处。通过将其序列化为隐藏的工作表或将其存储在全局VBA变量中。

Pivot Table Object is available here上的文档。