【问题标题】:Copy/paste error when another workbook is open: PasteSpecial method of Range class failed打开另一个工作簿时出现复制/粘贴错误:Range 类的 PasteSpecial 方法失败
【发布时间】:2015-09-13 11:36:19
【问题描述】:

我需要在工作表之间多次传输一个图表。

图表从表格中获取数据,表格中的数据会根据列表中的选择而变化。

宏循环遍历此列表并在每个循环内将图形作为图片复制/粘贴到新工作表中。

复制/粘贴的代码

Worksheets(redemp).ChartObjects("Chart 6").Copy
pasteRow = pasteRow + 24
Worksheets(pdf).Cells(pasteRow, pasteCol + 1).PasteSpecial xlPasteValues
  1. 有没有比复制/粘贴更好的方法在工作表之间传输图表?

  2. 当我运行宏(通过通过任务计划程序运行的 VB 脚本)并且另一个 Excel 工作簿已打开时,VBA 抛出 Range 类的 PasteSpecial 方法失败。它只针对图表对象分解。

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    .Copy Destination 方法通常最适合处理大量数据,因为它会跳过剪贴板。我发现图表往往是相似的,因为它们需要大量的处理能力来移动和编辑,所以如果你还没有使用它,这种方法应该会更好。

    ActiveSheet.ChartObjects("Your Chart").Activate
    ActiveChart.Copy Destination:=Worksheets("Sheet").Range("Cells")
    

    另一种方法是创建多个图表对象并使用您的代码根据每个工作表的需要对其进行编辑。

    对于第二个问题,我从未通过 Windows 任务计划程序运行宏,所以我不确定,但关闭屏幕更新或暂时锁定工作表应该可以解决问题。

    希望这会有所帮助!

    【讨论】:

    • 感谢您的回答。但是,它没有帮助,我被命名为 Destination:= part 的 Named argument not found 错误。另外我找到了错误的原因。当我打开多个 excel 对象时,VBA 无法再复制/粘贴图表。
    猜你喜欢
    • 2017-09-03
    • 1970-01-01
    • 2021-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-21
    相关资源
    最近更新 更多