2016-07-28 60 views
1

我在尋找與以下錯誤的幫助。運行時錯誤'1004'數據透視表錯誤

我有一些VBA代碼打開工作簿並在包含數據透視表的工作表中複製。

然後代碼選擇數據透視表,按日期過濾並複製一些字段。

此功能在首次使用時完美運行。然而,當這個報告是每天使用一次以上,它擊中了以下錯誤:

enter image description here

的問題是與數據透視表名的分配,在VBA中只使用系統默認值。代碼如下:

Sheets("Sheet1").Select 

ActiveWorkbook.ShowPivotTableFieldList = False 

ActiveSheet.PivotTables("PivotTable1").PivotFields("Date ").AutoSort _ 
    xlDescending, "Date " 

是否有另一種方法動態選擇數據透視表而不管名稱?

或者,是否有代碼在執行結束時清除歷史記錄,以便每次運行報告時都將支持1?

任何幫助將不勝感激。

在此先感謝

+0

如果總是有1個支點,那麼'.PivotTables(1)'也許? –

回答

2

如果你知道只會有一個數據透視表(因爲它似乎你已經打算在您的文章傳達,雖然我可能已經misinterpretted這一點),這是更好地使用索引比名稱,因爲如果在創建新數據透視表時另一個名稱存在,名稱將會不同。更改您的通話:

If Sheets("Sheet1").PivotTables.Count <> 0 Then 
    Sheets("Sheet1").PivotTables(1).PivotFields("Date ").AutoSort xlDescending, "Date " 
End If 

注意我還刪除了「選擇」的用法,因爲這被認爲是不好的做法爲variety of reasons

+1

你打我吧:D –

+1

@SiddharthRout我一生中最驕傲的一天:P – RGA