我在使用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}}。
有人在这里有线索吗?
感谢名单,
答案 0 :(得分:4)
Paste方法可以将目标作为参数。你尝试过这样的事吗?
ThisWorkbook.Sheets("Example").Paste Destination:=ThisWorkbook.Sheets("Example").Range("A1")