簡體   English   中英

Excel VBA-將帶有圖表的工作表復制到另一個工作簿,關閉時出錯

[英]Excel VBA - copying sheet with charts to another workbook, error on close

我陷入了這個問題:

我正在將多個工作表從多個Excel工作簿復制到一個特定的工作簿中。 我使用以下代碼:

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

DestinationWorkbook是帶有已加載Excel工作簿的對象。

一切正常,直到我遇到帶有圖表(圖表對象)的工作表。 復制很好,但是我無法關閉DestinationWorkbook,並且收到有關該操作的資源不足(內存?)的錯誤消息。

我認為可能是帶有鏈接的東西(圖表已鏈接到原始工作簿)。

我試圖清除剪貼板,更改所有圖表的.Values,.XValues,.Name,斷開鏈接(不確定它是否正常工作),保存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

而不是復制可能導致內存溢出的整個工作表:

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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM