如何将形状复制到另一个工作表(而不是图片)?
我用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")