Excel VBA - 将图表复制到另一个工作簿,关闭时出错

时间:2014-02-18 23:48:44

标签: excel vba charts copy

我遇到了这个问题:

我正在将多个Excel工作簿中的大量工作表复制到一个特定的工作簿中。 我使用这段代码:

SourceWorkbook.SourceSheet.Cells.Copy DestinationWorkbook.DestinationSheet.Cells(1,1)

DestinationWorkbook是一个加载了Excel工作簿的对象。

一切正常,直到我遇到带图表的图纸(图表对象)。复制很好,但我无法关闭DestinationWorkbook,并且收到有关操作资源不足的错误消息(内存?)。

我认为它可能是链接(图表链接到原始工作簿)。

我试图清除剪贴板,更改.Values,.XValues,.Names所有图表,断开链接(不确定它是否正常工作),保存DestinationWorkbook,DoEvents,On Error Resume Next等等但它仍然没有工作正常。

我的最后一个选择是从SourceWorkbook中删除图表并自己创建,但我想避免使用它,因为它会因为不同的工作表而变得复杂。

希望任何人都可以提供帮助。

整个代码很复杂,但最重要的部分是:

Set SourceWorkbook = GetObject(Path)
SourceWorkbook.SourceSheet.Cells.Copy DestinationWorkbook.DestinationSheet.Cells(1,1)
SourceWorkbook .Close Savechanges:=False
Set SourceWorkbook = Nothing

1 个答案:

答案 0 :(得分:0)

而不是复制可能导致记忆韭菜的整张纸:

SourceWorkbook.SourceSheet.Cells.Copy DestinationWorkbook.DestinationSheet.Cells(1,1)

尝试复制特定范围:

  SourceWorkbook.Sheets(SourceSheet).Range(SourceWorkbook.Sheets(SourceSheet).Cells(1, 1), _
  SourceWorkbook.Sheets(SourceSheet).Cells(100, 100)).Copy ThisWorkbook.Sheets(DestinationSheet).Cells(1, 1)