0

OLAPCubeにリンクされているピボットテーブルのVBAを介していくつかの値を選択したいと思います。私が知っているように、そのような変更は次のように入力することで実現できます。

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

Excelシートのセルからパラメータのリストを取得するので、次のような単純な関数を記述しました。前述の例では、次のようになります。

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

このような文字列を配列関数のパラメーターとして使用することはできません(1つの文字列として認識されるため)。そのため、上記のコードを入力して、配列のバリアントに変換しようとしました。

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

私のコードは不必要に複雑でした-時間を無駄にしてすみません。今、私の問題は、特定のディメンションまたはキューブ全体が存在するかどうかを確認する方法です...助けてくれてありがとう。

于 2012-06-22T22:04:33.997 に答える