簡體   English   中英

VBA - 從 Excel * 不* 使用剪貼板導出圖像(復制/粘貼)

[英]VBA - Export Image from Excel *without* using Clipboard (Copy/Paste)

有很多很好的示例說明如何獲取 Excel 范圍、從中創建圖像並將其保存到驅動器。 這里是一: 使用VBA將excel文件中的圖片導出為jpg

這在小規模上效果很好,但是當您嘗試通過 3,000 次或更多次迭代運行它時,由重復使用剪貼板引起的“內存泄漏”最終會侵蝕該過程,並且宏在此過程中的某個地方失敗。 即使在功能強大的機器(50+ GB 的 RAM)上運行 64 位 Excel 也會發生這種情況。

有沒有辦法在不使用剪貼板的情況下做到這一點? 我的第一個想法是嘗試修復內存泄漏問題,但所有這些嘗試都沒有成功。 對於上下文,我基本上使用上面鏈接的解決方案中提供的確切代碼(添加了一些附加功能以嘗試減少內存泄漏,例如每 100 張圖像后自動保存工作簿等)。

我也在找你提到的; 以下是使用圖表的方法:

Dim file As String ' the path to the saved image, in the temp dir
file = Environ$("temp") & "\chart.gif"

Sheets("Sheet1").ChartObjects(0).Activate
Sheets("Sheet1").ChartObjects(0).Chart.Export Filename:=file, FilterName:="GIF"

內存泄漏最終沒有解決方案,這似乎是 VBA 的系統問題。

對於那些試圖以編程方式生成圖表的人來說,用 PHP 構建要容易得多。

暫無
暫無

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

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