2017-5-25 對VBA編程速度優化的總結


最近在做VBA關於Excel的編程,但是自己寫出來的程序,運行的時間非常的長,有的時候還會導致系統的崩潰。VBA制作出來的宏,本身是為了能夠簡化操作,但是如果這樣以來導致Excel的崩潰,就太藍廋了。在網上了解了一波怎么優化性能,在這里總結如下:

 

1.數據類型正確選擇:VB處理interger和long的能力最強,處理的速度從快到慢:Long〉Integer〉Byte〉Single〉Double〉Currency。有大神說將double和Currency換下來之后,代碼可以快十倍。難以想像,是在不明白這是為啥。

2.為變量制定數據類型:避免出現只聲明不制定類型的情況出現。

3.盡量避免使用屬性:盡量多使用變量,尤其是在循環中。速度相差20倍。

4.盡量多使用數組,盡量避免使用集合。數組的存儲速度可以達到集合的100倍。

5.展開小的循環體,如果一個循環只會循環2,3次,就展開循環,循環占用的CPU的時間較多。

6.避免使用很短的函數。如果調用的函數很短,就不要放在外面來調用。

7.減少對子對象的引用,盡量使用with來減少引用和存入其他的變量。

8.檢查字符串是否為空,比如 if text1.text="" then 替換為 if len(text1.text)=0 then.

9.去除next關鍵字后的變量名。

10.多用數組,少用變量。

11.多用動態數組,少用靜態數組。

12.set=nothing 來卸載引用的對象,或者unloadform。

13.使用類模塊,少使用ActiveX。

14.減少模塊的數量。

15.用ByVal傳參,不用ByRef。

16.對代碼進行盡可能的優化。

 

 

以我可以明白的就是這么多的,其他高級的優化就慢慢學習吧,總之覺得vba雖然有些缺陷,但是能幫助效率提高很多,慢慢學習吧~

 

reference:http://www.wenkuxiazai.com/doc/5bf38e8a6529647d272852fd-9.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM