2017-06-05 44 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