VBA - OLAP多维数据集筛选器 - 测试是否存在项目

时间:2017-12-07 11:46:31

标签: excel vba olap-cube

我在Excel中的OLAP多维数据集表上有一个过滤器

    ActiveSheet.PivotTables("cohortCLVTwoYear").CubeFields(17).EnableMultiplePageItems = _
    True
ActiveSheet.PivotTables("cohortCLVTwoYear").PivotFields( _
    "[data1].[CUST_COMBINEDmonthsFromOrder].[CUST_COMBINEDmonthsFromOrder]"). _
    VisibleItemsList = Array( _
    "[data1].[CUST_COMBINEDmonthsFromOrder].&[01-03_Months]", _
    "[data1].[CUST_COMBINEDmonthsFromOrder].&[04-06_Months]", _
    "[data1].[CUST_COMBINEDmonthsFromOrder].&[07-09_Months]", _
    "[data1].[CUST_COMBINEDmonthsFromOrder].&[10-12_Months]", _
    "[data1].[CUST_COMBINEDmonthsFromOrder].&[13-18_Months]", _
    "[data1].[CUST_COMBINEDmonthsFromOrder].&[19-24_Months]")

此过滤的数据集是一个人成为客户的时间长度。

在我工作的一些较新的品牌上,它们已经存在了很长时间,所以不要过滤掉一些后来的项目,比如19-24_months

我尝试创建一些错误处理,如果上述方法无效,请尝试

    ActiveSheet.PivotTables("cohortCLVTwoYear").CubeFields(17).EnableMultiplePageItems = _
    True
ActiveSheet.PivotTables("cohortCLVTwoYear").PivotFields( _
    "[data1].[CUST_COMBINEDmonthsFromOrder].[CUST_COMBINEDmonthsFromOrder]"). _
    VisibleItemsList = Array( _
    "[data1].[CUST_COMBINEDmonthsFromOrder].&[01-03_Months]", _
    "[data1].[CUST_COMBINEDmonthsFromOrder].&[04-06_Months]", _
    "[data1].[CUST_COMBINEDmonthsFromOrder].&[07-09_Months]", _
    "[data1].[CUST_COMBINEDmonthsFromOrder].&[10-12_Months]", _
    "[data1].[CUST_COMBINEDmonthsFromOrder].&[13-18_Months]")

最终将过滤器降低到......

    ActiveSheet.PivotTables("cohortCLVTwoYear").CubeFields(17).EnableMultiplePageItems = _
    True
ActiveSheet.PivotTables("cohortCLVTwoYear").PivotFields( _
    "[data1].[CUST_COMBINEDmonthsFromOrder].[CUST_COMBINEDmonthsFromOrder]"). _
    VisibleItemsList = Array( _
    "[data1].[CUST_COMBINEDmonthsFromOrder].&[01-03_Months]")

01-03_months将永远有效。

但是,一旦过滤项目不存在就会出现错误,我会收到以下错误。

  

运行时错误' 1004:   无法在OLAP多维数据集中找到该项目

所以这就是我现在所处的位置,我需要能够检查项目是否存在,如果它们都存在,请执行第一个过滤器,如果缺少过滤器,则需要进行过滤。

有人可以帮我写那个检查员吗?

干杯

约翰

0 个答案:

没有答案
相关问题