VBA編程時常用的提速方法作者:網(wǎng)絡(luò) | 來源:網(wǎng)絡(luò)轉(zhuǎn)摘 | 時間:2008-05-07 | 閱讀權(quán)限:游客 | 會員幣:0 | 【大 中 小】 一,、讓代碼"專注"運行 二,、單元格(區(qū)域)寫法的選擇 三種寫法各有優(yōu)缺點,但以取值速度論,cells(1,1)最快,[A1]寫法最慢,Range("A1")比cells(1,1)稍慢,但優(yōu)點是在VBE中輸入可以顯示屬性方法等快速輸入信息.此外,要明示對象屬性而不要依賴于對象的默認(rèn)屬性,這是一種好的編程習(xí)慣.下面兩句,第二句要比第一句快得多: 三、比較語句 1.分解IF語句 優(yōu)于 IF A AND B THEN 與 2.并列的條件使用elseif或select,elseif寫起來麻煩,但速度優(yōu)于select 3.將最可能的條件及容易計算的條件放在前面 上面分解后的A應(yīng)當(dāng)比B出現(xiàn)的機會更大,或者需要進(jìn)行計算更容易計算出結(jié)果,select語句放在前面的case也應(yīng)這樣 4.Iif速度慢于if/else 四,、循環(huán)語句 1.For 語句快于DO/WHILE,這是因為FOR語句的增量部分是VBA自帶的,特別是步長為1的更明顯 2.For/each快于for/to 五,、使用With語句 with語句不僅僅是簡化了寫法,速度也大大提升了。 六,、盡量不用Variant類型 這不用多說吧,使用Option Explicit是一個好習(xí)慣,。 給返回值一個明確的類型,會對提速有好處。雖然有時候我們覺得不明顯,這是很多人使用left$,而不用left,使用int%,而不用int的原因(你是否對這種寫法好奇過,?),。但如果你一開始你就沒有DIM,這就很有必要了。 七,、關(guān)注內(nèi)存 對占用內(nèi)存較多的對象變量,不要時要記住set=nothing,如果你對你的機器內(nèi)存的容量沒有信心,應(yīng)避免使用遞歸程序,遞歸的過程會吃掉大量的內(nèi)存,。 八、使用工作表函數(shù)(方法) 有些工作表函數(shù)(方法)速度是很快的,比如FIND,VLOOKUP等,要記得使用它們,不要花力氣去做不討好的事,。當(dāng)使用工作表函數(shù)時,操作對象應(yīng)避免使用內(nèi)存變量,那樣反而慢,。 九、劃零為整 1.內(nèi)存變量的運算速度大大快于RANGE對象,。 Dim arr() 2)將內(nèi)存數(shù)組數(shù)據(jù)寫入RANGE,。在內(nèi)存數(shù)組經(jīng)過計算處理后,寫回時只需下句就可以了,。 range(“A1:F65536”)= arr 2.非數(shù)組變量快于數(shù)組變量。當(dāng)數(shù)組很大時,根據(jù)下標(biāo)提取數(shù)值會比從單個變量慢得多,這時可以把需要多 次使用的數(shù)組值先賦給內(nèi)存變量,。 3.減少使用REDIM的次數(shù),。REDIM是對數(shù)組操作中最費時的動作??梢韵阮A(yù)算大小,不夠或多余時再進(jìn)行調(diào)整,。 轉(zhuǎn)載請注明:本文來自:Excel吧 (www.) 詳細(xì)出處參考:http://www./Art/Html/264.html |
|