【发布时间】:2012-06-20 17:49:55
【问题描述】:
我想通过 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
我仍然收到错误消息。 你能帮帮我吗?
【问题讨论】:
-
你得到的确切错误是什么?
-
感谢您的建议 - 由于 Stackoverflow 有这么多用户,因此快速响应并不是那么简单。我的错误是:运行时错误“1004”:在 OLAP Cube 中找不到该项目
-
为什么不让你的函数返回一个以竖线 (|) 分隔的字段列表,然后你可以使用
Split(myVar, "|")创建数组。
标签: excel vba pivot-table olap-cube