2015-09-09 55 views
0

我正在Excel中創建一些VBA函數,以從Analysis Services多維數據集構建一些數據透視表模板。爲了加速執行和更新,我想使用Defer Layout Update複選框的功能。我希望這些字段一次全部添加,然後在With塊的末尾更新。我曾嘗試:推遲數據透視表的佈局更新

With ActiveSheet.PivotTables(ptName) 
    .ManualUpdate = True 
    .CubeFields("[Fiscal Week Code - Last Week]").Orientation = xlColumnField 
    .CubeFields("[DimDate].[Date]").Orientation = xlRowField 
    .ManualUpdate = False 
End With 

但ManualUpdate物業不按照本MSDN文章適當工作。 MSDN表示它是一個讀/寫屬性,而對象瀏覽器沒有提到它是隻讀屬性。

我也嘗試使用連接到源數據的電子表格的數據透視表,並且該屬性也沒有在那裏工作。

在此先感謝!

-Wyatt

+0

我正在經歷相同的行爲。你有沒有找到解決方案? – Travis

+0

對不起,我沒有 –

+0

@Travis不是真正的解決方法,但你可以關閉屏幕更新。這隻能幫助外觀,而不是速度。 –

回答

0

我與ManualUpdate經驗是同樣令人沮喪。似乎有一些行爲不起作用。

我唯一的建議是在每個單獨的動作改變主軸之前嘗試設置ManualUpdate = True。因此在您的代碼中,在每行表示CubeFields之前放置ManualUpdate = True。這樣我取得了一些成功。

+0

我通過記錄添加'CubeFields的開始和結束時間來計時。在每個操作之前加入'ManualUpdate = True'沒有任何區別。 –