我有一个excel文件,我需要在工作表之间多次传输一个图表。我正在使用复制/粘贴并将图形粘贴为图片(图表从表中获取数据,表格中的数据根据列表中的选择而变化。基本上,宏循环遍历此列表并在每个循环内复制/粘贴& #39;将图表作为新图表的图片。)
用于复制/粘贴的宏
Worksheets(redemp).ChartObjects("Chart 6").Copy
pasteRow = pasteRow + 24
Worksheets(pdf).Cells(pasteRow, pasteCol + 1).PasteSpecial xlPasteValues
第一个问题,是否有更好的方法在工作表之间传输图表而不是复制/粘贴?
当我运行宏(通过任务调度程序运行的VB脚本)并且另一个Excel工作簿已经打开时,VBA抛出Range类的PasteSpecial方法失败。如果未打开Excel,则宏工作正常。它只会分解图表对象。任何想法为什么以及如何解决它?
答案 0 :(得分:0)
.Copy Destination方法通常是最好的,因为它会跳过剪贴板,因此会有大量数据。我发现图表往往相似,因为它们需要大量的处理能力来移动和编辑,所以如果你不使用它,这种方法应该会更好。
ActiveSheet.ChartObjects("Your Chart").Activate
ActiveChart.Copy Destination:=Worksheets("Sheet").Range("Cells")
另一种方法是创建多个图表对象,并使用您的代码根据每个工作表的需要对其进行编辑。
对于第二个问题,我从未通过Windows任务调度程序运行宏,因此我不确定但是关闭屏幕更新或临时锁定表单应该可以解决问题。
希望这有帮助!