首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >过滤VBA中的OLAP字段

过滤VBA中的OLAP字段
EN

Stack Overflow用户
提问于 2017-11-17 06:08:55
回答 1查看 1.5K关注 0票数 1

我定期更新几个OLAP字段,并考虑将此任务自动化。

我试着录制一些宏来理解OLAP枢轴表的幕后工作,并得到了这个结果。

当我选择2016年10月至10月至2017年10月的所有月份(财政期间的层次结构为年份、季度和月份)时,将生成以下代码:

代码语言:javascript
复制
  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代码时,我会得到错误。

例如,以下内容:

代码语言:javascript
复制
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月的所有月份:

代码语言:javascript
复制
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]")
EN

回答 1

Stack Overflow用户

发布于 2017-11-17 19:15:06

宏记录器用于选择数据透视场的代码是:

代码语言:javascript
复制
PivotFields("[Fiscal Period].[Year]")

您正在使用的...but:

代码语言:javascript
复制
PivotFields("[Fiscal Period].[Year].[Year]")

...so也许这解释了错误。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47344297

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档