繁体   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