最近在做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