【问题标题】:Pivot Tables - VBA数据透视表 - VBA
【发布时间】: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


【解决方案1】:

你的代码中有错字,daty 应该写成myVar。 (或者我们遗漏了更多细节)

【讨论】:

  • 是的,你是对的——谢谢——在提问之前,我重写了部分代码。无论如何 - 它不能解决我的问题。
  • 看来我又犯了一个迷——我忘了​​把“tablica”改成“tableVar”
【解决方案2】:

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

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-03-29
    • 2021-12-05
    • 2017-02-08
    • 2012-10-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多