2017-06-05 74 views
0

我正在使用Excel VBA中的以下代碼。我將數據透視表複製到L8,並且想要將此透視表重命名爲「PivotTable00」。但是,如果出現錯誤消息「對象不支持此屬性或方法」,則會轉到此處的第二行。VBA複製數據透視表並重命名

有沒有辦法解決它?非常感謝。

wsPvtTbl.PivotTables("PivotTable1").TableRange2.Copy Destination:=wsPvtTbl.Range("L8") 
wsPvtTbl.Range("L8").Activate 
ActiveCell.pivotTable.Name = "PivotTable00" 
+0

要重命名原來的「PivotTable1」到「PivotTable00」? –

回答

1

代替wsPvtTbl.Range("L8").Active使用wsPvtTbl.Range("L8").Activate

+0

Doh !!我甚至沒有看到! – YowE3K

+0

對不起,這是我在這裏粘貼我的代碼時的錯字。我原來的代碼就像你糾正的。任何幫助? – AmadeusNing

+0

該代碼是正確的,它將在'Range(「L8」)''中將數據透視表重命名爲'「PivotTable00」',而不必查看數據透視表的先前名稱。 –

1

而不是使用ActivateActiveCell(這不僅會減慢你的代碼的運行時間),你可以使用一個事實,即粘貼最新PivotTable,獲得第一在PivotTableswsPvtTbl工作表中的指標,請嘗試:

wsPvtTbl.PivotTables("PivotTable1").TableRange2.Copy Destination:=wsPvtTbl.Range("L8") 
wsPvtTbl.PivotTables(1).Name = "PivotTable00" 
+0

嗨,謝謝。然而,PivotTable1是我的第一個表,而我想重命名第二個PTable。我認爲數據透視表將根據創建的次數來命名,所以我不知道更改前的數據透視表之後的數字。 – AmadeusNing