2011-09-14 177 views
3

最後更新日期2011年10月14日 - 我現在知道更多信息,所以我將在此總結一切並刪除我之前的所有描述/問題。Excel 2007 VBA - 數據透視表字段列表???創建錯誤

問題是,運行某個程序後,我得到了一些奇怪的錯誤。這與我單擊「分割」時的相似,但不完全相同。不同之處在於實心的灰色條不顯示出來。這有點奇怪。最近,我開始認爲它可能是由涉及的數據透視表的字段列表引起的。

問題與任何的代碼下列三個片

代碼1

Dim pvtCache As PivotCache 
For Each pvtCache In ThisWorkbook.PivotCaches 
    pvtCache.Refresh 
Next pvtCache 

代碼2

ThisWorkbook.RefreshAll 

代碼3

Dim ws As Worksheet 
Dim pt As PivotTable 
For Each ws In ThisWorkbook.Worksheets 
    For Each pt In ws.PivotTables 
     pt.RefreshTable 
    Next pt 
Next ws 

但不能與發生這,在哪裏NLY的區別是我加ws.Activate到代碼3

代碼4

Dim ws As Worksheet 
Dim pt As PivotTable 
For Each ws In ThisWorkbook.Worksheets 
    ws.Activate 
    For Each pt In ws.PivotTables 
     pt.RefreshTable 
    Next pt 
Next ws 

所以,我的問題是,任何一個能解釋一下嗎?任何人都可以修正代碼1(在電子表格中使用來自大型數據源的2個數據透視表,但是有46個數據透視表),以使其工作時不會出現此錯誤?

感謝您的幫助!

+0

我們不能猜測沒有看到代碼,你不能將它張貼所以...好了,反正你仍然可以設置一些斷點在你的代碼(並且將任何'screenupdating'設置爲false)並查看哪裏(在代碼的幾行中設置斷點時),會出現分割。這可能會幫助你專注於「錯誤」的行 – JMax

+0

不知道你爲什麼不願意發佈你的代碼:你的公司擔心我們會複製你的祕密bug?我們都在這裏發佈「工作」代碼... –

+0

你可以刷新所有數據透視表「手動」嗎?我的直覺是你不能。 – adamleerich

回答

0

我有來自多個工作表的多個支點,所有三個代碼片段都能正常工作。應該有別的東西導致問題,而不是代碼。

0

您的代碼片段正常運行。

這可能是在您的代碼運行後屏幕顯示可能不會刷新。

嘗試增加這一輪代碼:

Application.ScreenUpdating = False 
    ''//Your code here 
DoEvents 
Application.ScreenUpdating = True 
相關問題