2012-07-02 26 views
0

我有一個性能問題和谷歌並不能幫助我。 這個人有同樣的問題: http://excel.bigresource.com/Copy-Chart-Print-Very-Slow-1eeSa883.html複製圖表及打印速度非常慢VBA

當我複製Excel表格與VBA:這是如此slooooow。

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

任何想法,使其更快? 的信息,目的是將它們粘貼在PowerPoint中。

奇怪的是,手動使它完全不

感謝放緩。 Nico。

+0

能否請你提的Excel版本?此外,如果您可以發佈您正在使用的完整代碼?我可以爲你測試它嗎? –

+0

Excel 2003.不需要添加任何更多的vba代碼,唯一掙扎的線是myChart.copy,我甚至可以在調試時感受它。 –

+0

拷貝速度較慢還是粘貼?原因,我問是因爲我測試了它,它對我來說工作得很好...... –

回答

2

因爲你是一個複製到PowerPoint,我會建議你嘗試這種代碼:

myChart.CopyPicture Appearance:=xlScreen, Format:=xlBitmap 
發現這在MS-幫助

here

還發現了一個不錯的提示here,根據,下面的代碼應該更快

myChart.ChartArea.Copy 

Testet小規模演示,很高興聽到大規模的結果:)將是很高興能在幾秒鐘內做出一些比較,當你嘗試了這一點。

編輯:另一件需要注意的 - 內存泄漏

如果你這樣做了廣泛複製到剪貼板,你就要當心了事後清理,否則你可能會填補你的內存比較快;)這也可能導致表現疲軟,因爲許多系統可能將數據移動到頁面文件,訪問放緩下來。

編輯:只是如果你要到第二的最後一位,如果你有很多圖表使用For each是不是通過你的對象有一個整潔的循環迭代慢複製

。但是,代碼看起來並不認爲整齊喜歡使用for each,但如果任何秒/毫秒計數了一個應該將它們進行相互比較。

我發現這個在邁克爾文墨的專業書,測試它並驚訝。不知道在什麼情況下,但在更大的範圍內測試並確認。