如何将形状复制到另一个工作表(而不是图片)?

我用Excel VBA遇到了一些麻烦(再一次…)。

我只是想从工作表复制形状(实际上是“模板”形状,具有预定义的布局)到另一个工作表。

当我录制一个macros时,这是生成的VBA代码:

Sheets("Layout").Select ActiveSheet.ChartObjects("CHART_TEMPLATE").Activate ActiveChart.ChartArea.Copy Sheets("Example").Select Range("A1").Select ActiveSheet.Paste 

当然,我想摆脱所有的".Select"方法,对于性能问题。 出于这个原因,我不能Select一个范围,既不使用ActiveSheet.Paste

不幸的是, Paste方法只存在于Worksheet对象(如ActiveSheet.Paste ),所以我不得不使用Range对象的PasteSpecial方法。

所以这是我的代码:

  ThisWorkbook.Sheets("Layout").ChartObjects("CHART_TEMPLATE").Copy ThisWorkbook.Sheets("Example").Range("A1").PasteSpecial Paste:=xlPasteAll 

但是, PasteSpecial方法将Shapes复制为图片…当然,我不需要图片,因为我必须用数据填充这些Charts

有人在这里有线索吗?

感谢名单,

粘贴方法可以将目标作为参数。 你有没有尝试过这样的事情?

 ThisWorkbook.Sheets("Example").Paste Destination:=ThisWorkbook.Sheets("Example").Range("A1")