我遇到了这个问题:
我正在将多个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
答案 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)