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

时间:2012-02-27 12:36:18

标签: excel vba

我在使用Excel VBA时遇到了一些麻烦(再一次......)。

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

当我录制宏时,这是生成的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),因此我必须使用PasteSpecial Range ThisWorkbook.Sheets("Layout").ChartObjects("CHART_TEMPLATE").Copy ThisWorkbook.Sheets("Example").Range("A1").PasteSpecial Paste:=xlPasteAll 方法。

所以这是我的代码:

PasteSpecial

但是,Shapes方法将Charts复制为图片... 当然我不想要图片,因为我必须用数据填充{{1}}。

有人在这里有线索吗?

感谢名单,

1 个答案:

答案 0 :(得分:4)

Paste方法可以将目标作为参数。你尝试过这样的事吗?

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