2012-06-18 241 views
0

我想通過鏈接到OLAP多維數據集的數據透視表中的VBA選擇一些值。 正如我知道這樣的修改可以通過鍵入來實現:數據透視表 - VBA

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

由於從在Excel工作表單元的參數獲取列表,我寫簡單的功能,其 - 在上述實施例 - 回報:

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

我不能使用這樣的字符串作爲參數陣列功能(因爲它認識到它作爲一個字符串),所以我試圖將其轉換爲變體數組,上面的代碼輸入:

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 

我仍然收到一條錯誤消息。 你能幫我嗎?

+0

你得到了什麼確切的錯誤? –

+0

感謝您的建議 - 因爲Stackoverflow擁有如此多的用戶,所以它的響應速度並不那麼簡單。我的錯誤是:運行時錯誤'1004': 在OLAP Cube中找不到該項目 – matandked

+0

爲什麼不只是讓函數返回管道(|) - 限定字段列表,那麼您可以使用'Split( myVar,「|」)'來創建數組。 –

回答

1

你在你的代碼中有一個錯字,daty應該說是myVar。 (如果不是這樣,我們缺少更多細節)

+0

是的,你是對的 - 謝謝 - 在提問之前,我重寫了部分代碼。無論如何 - 它不能解決我的問題。 – matandked

+0

似乎我做了另一個mystake - 我忘了將「tablica」更改爲「tableVar」 – matandked

0

愚蠢的事情,但錯誤信息簡直是正確的 - 有在多維數據集沒有這樣的項目:

運行時錯誤「1004」:該項目可以在OLAP多維數據集

沒有找到我這裏了不正確的參數:

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

我的代碼是不必要的複雜 - 抱歉 浪費你的時間。 現在我的問題將是 - 如何檢查特定尺寸或整個立方體存在... 再次感謝您的幫助。