2013-03-14 96 views

回答

5

假設你有兩個循環做大致相同的事情,C/C++是很有可能是要快,因爲它將被編譯爲機器代碼,而VBA具有VBA解釋器和Excel本身的開銷。如果您計劃將編組數據複製到C/C++來執行循環,那麼編組將會有一些開銷;多少取決於你如何選擇這樣做。

但是,請不要選擇平臺,因爲循環速度更快,請選擇適合該解決方案的平臺,並使您獲得最高效率。

根據我的經驗,這不是循環這是緩慢的,但什麼是的循環,很慢。正如您大概已經發現的那樣,在excel中逐個單元訪問比直接數組訪問要慢得多。

如果您需要知道要快多少,請衡量一下!用C或C++創建一個簡單的VBA循環和一個等效的循環(或者儘可能的接近),看看哪一個更快(以及多少)。

+1

+1這個答案提出了測試解決方案以符合_your_編程風格的想法。 – 2013-03-14 14:36:02

+0

與Excel中的UDF相關的一個注意事項是,每次計算VBE標題欄時都會出現一個錯誤,這可能會導致UDF出現重大性能問題(即,您正在使用的遞歸函數從工作簿中的單元呼叫) – Karter 2013-03-14 14:58:43