数据透视表 - VBA

时间:2012-06-18 17:49:35

标签: excel vba pivot-table olap-cube

我想通过数据透视表中的VBA选择一些值,这些值链接到OLAP多维数据集。 据我所知,可以通过输入以下内容来实现这种修改:

ActiveSheet.PivotTables("PivotTable1").PivotFields("[parameter].[parameter]").VisibleItemsList = Array("value1","value2","value3")

由于从Excel表格中的单元格中获取参数列表,我编写了简单的函数 - 在提到的示例中 - 返回:

""value1","value2","value3""

我不能将这样的字符串用作Array函数的参数(因为它将它识别为一个字符串),所以我试图将它转换为Variant数组,在上面输入代码:

Dim tableVar() As Variant

 myVar = Replace(myVar, Chr(34), "") 
 myVar = Split(myVar, ",") 
 lowerB =LBound(myVar) 
 upperB = UBound(myVar)

 ReDim tablica(lowerB To upperB)
  For i = lowerB To upperB 
     tableVar(i) = myVar(i) 
  Next i

不幸的是,当我打电话时,它什么都没改变。

ActiveSheet.PivotTables("PivotTable1").PivotFields("[parameter].[parameter]").VisibleItemsList = tableVar

我仍然收到错误讯息。 你能帮帮我吗?

2 个答案:

答案 0 :(得分:1)

您的代码中有拼写错误,daty应该说myVar。 (或者我们错过了更多细节)

答案 1 :(得分:0)

愚蠢的事情,但错误信息是完全正确的 - Cube中没有这样的项目:

  

运行时错误“1004”:在OLAP多维数据集中找不到该项

我在这里给出了错误的参数:

ActiveSheet.PivotTables("PivotTable1").PivotFields("[parameter].[parameter]").VisibleItemsList = tableVar

我的代码不必要复杂 - 抱歉浪费你的时间。 现在我的问题是 - 如何检查特定尺寸或整个立方体是否存在...... 再次感谢您的帮助。