2016-10-11 59 views
0

我有一個VBA代碼,它通過更改PivotFilter(如下所示)來打印數據透視表。VBA中的PivotItem報告一個不存在的項

我的問題是,打印最後一個PivotItem(pivF = 27)之後,「pivI.Name」更改爲「999」,這在我的工作表和數據透視表中不存在。因此宏報告錯誤消息「運行時錯誤5」。

有趣的是,在同一個文件中的另一個工作表中的相同的代碼正常工作,沒有錯誤!

任何人都可以幫助我嗎?

Private Sub CommandButton3_Click() 
Dim pivF As PivotField 
Dim pivI As PivotItem 

Set pivF = ActiveSheet.PivotTables("Tourenplan").PivotFields("Tour") 

Application.ScreenUpdating = False 

For Each pivI In pivF.PivotItems 
    pivF.CurrentPage = pivI.Name 
    ActiveWindow.SelectedSheets.PrintOut 
Next pivI 

Application.ScreenUpdating = True 
End Sub 

有了這麼多虧,
迪歐

回答

2

我有同樣的問題昨天...

檢查在Pivot Table options(右鍵單擊表),在Data tab,你應該找Retain items deleted from the data source,爲Number of items to retain per field選擇None,然後刷新。

如果不起作用,請更改設置(Data tab上的所有設置),保存,關閉,再次打開,再次檢查相同的選項並將Number of items to retain per field設置爲None

+1

謝謝Jaggana,它工作。 :) – Dio

+1

那個愚蠢的參數...我不知道爲什麼它默認沒有設置爲None ... – R3uK

+0

不客氣。 是...謝謝你@R3uK你的原始答案。 – Jaggana

相關問題