1

我有性能问题,谷歌没有帮助我。这个人有同样的问题: http ://excel.bigresource.com/Copy-Chart-Print-Very-Slow-1eeSa883.html

当我用 VBA 复制一个 excel 图表时:这太慢了。

  Dim myChart As ChartObject
    For Each myChart In consoPDC.ChartObjects
        myChart.Copy
        ...
    Next

任何让它更快的想法?有关信息,目标是将它们粘贴到 powerpoint 中。

奇怪的是,手动制作一点也不慢

谢谢。尼科。

4

1 回答 1

2

因为您正在将副本复制到 PowerPoint 中,所以我建议您尝试以下代码:

myChart.CopyPicture Appearance:=xlScreen, Format:=xlBitmap

在 MS-Help 和这里找到这个

也在这里找到了一个很好的提示,根据,下面的代码应该更快

myChart.ChartArea.Copy

Testet 在一个小规模的演示中,很高兴听到大规模的结果:) 当你尝试这个时,在几秒钟内进行一些比较会很高兴。

编辑:另一件需要注意的事情 - 内存泄漏

如果您对剪贴板进行大量复制,则应注意事后清理,否则您可能会很快填满内存;)这也可能导致性能下降,因为许多系统可能会将数据移动到页面文件,从而减慢访问速度。

编辑:如果你应该进入最后一秒并且你有很多图表要复制

usingFor each比使用简洁的循环遍历对象要慢。但是,代码看起来不像 using 那样整洁for each,但是如果有任何 sec/millisec 计数,则应该将它们相互比较。

我在一本专门的 Micheal Schwimmer 书中发现了这一点,对其进行了测试并感到惊讶。不确定在哪种情况下,但在更大范围内进行了测试并确认。

于 2012-09-07T08:55:59.650 回答