数据透视表允许您通过双击值或右键单击字段并选择“显示详细信息”来“向下钻取”一组数据:
我的问题是,VBA(Office 2010)中是否有任何方法可以捕获这些数据?我浏览了 PivotItem
上的文档, PivotField
, PivotTable
,和PivotCache
对象,但我没有看到任何会在数据或字段单元格下返回详细数据的内容。这可以一步完成吗?是否有可用于执行此操作的多步骤流程?
最佳答案
不幸的是,答案是不。虽然您可以访问 PivotCache 对象,但无法以编程方式访问数据。但是,只要刷新,您就可以返回到应与缓存匹配的源数据。我发表了一系列有关过滤源数据的文章,因为我不喜欢 Excel 在向下钻取时创建新工作表的方式。
http://www.dailydoseofexcel.com/archives/2010/11/08/filter-pivot-table-source-data/ http://www.dailydoseofexcel.com/archives/2010/11/09/filter-pivot-table-source-data-ii/ http://dailydoseofexcel.com/archives/2010/11/10/filter-pivot-table-source-data-calling-procedures/
最终我的实验因分组数据而失败,尤其是日期。如果您没有分组数据或者不适用于您的情况,您可以使用 Range 对象
Application.Evaluate(Application.ConvertFormula(pt.SourceData, xlR1C1, xlA1))
其中 pt 是数据透视表对象。
关于excel - 获取 PivotItem 的源范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21028041/