我定期更新几个OLAP字段,并考虑将此任务自动化。
我试着录制一些宏来理解OLAP枢轴表的幕后工作,并得到了这个结果。
当我选择2016年10月至10月至2017年10月的所有月份(财政期间的层次结构为年份、季度和月份)时,将生成以下代码:
ActiveSheet.PivotTables("Microsoft Office PivotTable 10.0").CubeFields(5). _
TreeviewControl.Drilled = Array(Array(""), Array( _
"[Fiscal Period].[All Fiscal Period].[2017]"))
ActiveSheet.PivotTables("Microsoft Office PivotTable 10.0").PivotFields( _
"[Fiscal Period].[Year]").HiddenItemsList = Array( _
"[Fiscal Period].[All Fiscal Period].[2004]", _
"[Fiscal Period].[All Fiscal Period].[2005]", _
"[Fiscal Period].[All Fiscal Period].[2006]", _
"[Fiscal Period].[All Fiscal Period].[2007]", _
"[Fiscal Period].[All Fiscal Period].[2008]", _
"[Fiscal Period].[All Fiscal Period].[2009]", _
"[Fiscal Period].[All Fiscal Period].[2010]", _
"[Fiscal Period].[All Fiscal Period].[2011]", _
"[Fiscal Period].[All Fiscal Period].[2012]", _
"[Fiscal Period].[All Fiscal Period].[2013]", _
"[Fiscal Period].[All Fiscal Period].[2014]", _
"[Fiscal Period].[All Fiscal Period].[2015]", _
"[Fiscal Period].[All Fiscal Period].[2019]", _
"[Fiscal Period].[All Fiscal Period].[2016]")
ActiveSheet.PivotTables("Microsoft Office PivotTable 10.0").PivotFields( _
"[Fiscal Period].[Quarter]").HiddenItemsList = Array( _
"[Fiscal Period].[All Fiscal Period].[2017].[1]")
Range("B8").Select
ActiveSheet.PivotTables("Microsoft Office PivotTable 10.0").PivotFields( _
"[Fiscal Period].[Year]").DrilledDown = True
ActiveSheet.PivotTables("Microsoft Office PivotTable 10.0").PivotSelect _
"'[Fiscal Period].[All Fiscal Period].[2017].[2]'", xlDataAndLabel, True
Range("B9").Select
ActiveSheet.PivotTables("Microsoft Office PivotTable 10.0").PivotFields( _
"[Fiscal Period].[Quarter]").DrilledDown = True
Range("E9").Select我一直在互联网上搜索关于这项任务的任何线索,只看到使用VisibleItemsList。当我在自己的工作中实现我在互联网上看到的VisibleItemsList代码时,我会得到错误。
例如,以下内容:
Worksheets(1).PivotTables(1).PivotFields("[Fiscal Period].[Year].[Year]").VisibleItemsList = Array("[Fiscal Period].[All Fiscal Period].[2015]", "[Fiscal Period].[All Fiscal Period].[2016]")给出错误:
"Unable to get the PivotFields property of PivotTable class"
我试图使用上述代码只选择2015和2016财政年度。
如果有人陪我完成这项任务,我将非常感激。事实证明,这是我所面临的最痛苦的事情之一。我只需要一些关于VisibleItemsList属性的提示。如果相关的话,我正在使用Excel 2007。
以下是枢轴布局的图像:

附加信息:
当我记录该宏时,只选择2015年和2016年(而不是扩展它们)。扩展年份和季度的代码如下所示,其中我选择了2016年10月至2017年10月的所有月份:
ActiveSheet.PivotTables("Microsoft Office PivotTable 10.0").CubeFields(5). _
TreeviewControl.Drilled = Array("")
ActiveSheet.PivotTables("Microsoft Office PivotTable 10.0").PivotFields( _
"[Fiscal Period].[Year]").HiddenItemsList = Array( _
"[Fiscal Period].[All Fiscal Period].[2004]", _
"[Fiscal Period].[All Fiscal Period].[2005]", _
"[Fiscal Period].[All Fiscal Period].[2006]", _
"[Fiscal Period].[All Fiscal Period].[2007]", _
"[Fiscal Period].[All Fiscal Period].[2008]", _
"[Fiscal Period].[All Fiscal Period].[2009]", _
"[Fiscal Period].[All Fiscal Period].[2010]", _
"[Fiscal Period].[All Fiscal Period].[2011]", _
"[Fiscal Period].[All Fiscal Period].[2012]", _
"[Fiscal Period].[All Fiscal Period].[2013]", _
"[Fiscal Period].[All Fiscal Period].[2014]", _
"[Fiscal Period].[All Fiscal Period].[2019]", _
"[Fiscal Period].[All Fiscal Period].[2017]", _
"[Fiscal Period].[All Fiscal Period].[2018]")发布于 2017-11-17 19:15:06
宏记录器用于选择数据透视场的代码是:
PivotFields("[Fiscal Period].[Year]")您正在使用的...but:
PivotFields("[Fiscal Period].[Year].[Year]")...so也许这解释了错误。
https://stackoverflow.com/questions/47344297
复制相似问题