0

我想通过 VBA 在链接到 OLAP Cube 的数据透视表中选择一些值。据我所知,可以通过键入以下内容来实现此类修改:

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

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

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

我不能使用这样的字符串作为 Array 函数的参数(因为它会将其识别为一个字符串),所以我尝试将其转换为 Array of 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

我仍然收到一条错误消息。请问你能帮帮我吗?

4

2 回答 2

1

您的代码中有错字,daty应该说myVar. (或者我们缺少更多细节)

于 2012-06-18T21:09:55.993 回答
0

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

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

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

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

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

于 2012-06-22T22:04:33.997 回答