免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
VBA編程時常用的提速方法 >> VBA基礎(chǔ) >> Excel吧

VBA編程時常用的提速方法作者:網(wǎng)絡(luò) | 來源:網(wǎng)絡(luò)轉(zhuǎn)摘 | 時間:2008-05-07 | 閱讀權(quán)限:游客 | 會員幣:0 | 【大 中 小】
速度是程序設(shè)計永恒的熱門話題,使用VBA編程當然也不例外,這里就將在網(wǎng)上收集到的VBA編程常用提速的方法與自己在VBA編程時的心得整理一下,上傳到這里.

一、讓代碼"專注"運行
1.將Application.ScreenUpdating設(shè)定為False,關(guān)閉屏幕更新.這個是最基本的加速方法,在程序結(jié)束設(shè)還原時設(shè)定為True.
2.將Application.EnableEvents設(shè)定為False,禁止觸發(fā)事件.這個在有其它自定義事件時,如定義了Worksheet_Change時,就有需要設(shè)定,還原時設(shè)定為True.
3.將Application.Interactive設(shè)定為False,禁止交互模式.當我們運行程序時,如刪除有數(shù)據(jù)的工作表而不需要提示,這時就可以使用,見意這段代碼只加在需要的地方,之后就立即開啟.
4.將Application.Calculation設(shè)定為xlCalculationManual,將計算模式設(shè)定為手動.當工作簿中有大量公式時,這樣的設(shè)定提速特別明顯,還原時設(shè)定為xlCalculationAutomatic.

二、單元格(區(qū)域)寫法的選擇
單元格(區(qū)域)寫法有3種,以A1單元格為例,可以使用
1.Cell對象寫法:cells(1,1)
2.Range對象寫法:Range("A1")
3.名稱寫法:[A1]

三種寫法各有優(yōu)缺點,但以取值速度論,cells(1,1)最快,[A1]寫法最慢,Range("A1")比cells(1,1)稍慢,但優(yōu)點是在VBE中輸入可以顯示屬性方法等快速輸入信息.此外,要明示對象屬性而不要依賴于對象的默認屬性,這是一種好的編程習慣.下面兩句,第二句要比第一句快得多:
x= cells(1,1)
x= cells(1,1).value

三、比較語句

1.分解IF語句
如:
IF A THEN
IF B THEN

優(yōu)于

IF A AND B THEN


IF A THEN
...
ELSE IF B THEN
優(yōu)于
IF A OR B then

2.并列的條件使用elseif或select,elseif寫起來麻煩,但速度優(yōu)于select

3.將最可能的條件及容易計算的條件放在前面

上面分解后的A應(yīng)當比B出現(xià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是一個好習慣。

給返回值一個明確的類型,會對提速有好處。雖然有時候我們覺得不明顯,這是很多人使用left$,而不用left,使用int%,而不用int的原因(你是否對這種寫法好奇過?)。但如果你一開始你就沒有DIM,這就很有必要了。

七、關(guān)注內(nèi)存

對占用內(nèi)存較多的對象變量,不要時要記住set=nothing,如果你對你的機器內(nèi)存的容量沒有信心,應(yīng)避免使用遞歸程序,遞歸的過程會吃掉大量的內(nèi)存。

八、使用工作表函數(shù)(方法)

有些工作表函數(shù)(方法)速度是很快的,比如FIND,VLOOKUP等,要記得使用它們,不要花力氣去做不討好的事。當使用工作表函數(shù)時,操作對象應(yīng)避免使用內(nèi)存變量,那樣反而慢。

九、劃零為整
當需要對較大區(qū)域進行相同的操作時,可以先使用union等方法收集,一次進行。在Range對象上尤其明顯,內(nèi)容、格式變更,刪除等等一個一個的處理要比把這些選定后一起處理慢得多的多。
 
十、使用內(nèi)存數(shù)組

1.內(nèi)存變量的運算速度大大快于RANGE對象。
1)將RANGE數(shù)據(jù)寫入內(nèi)存數(shù)組。下面兩句將生成一個65536行,6列的數(shù)組。用這種方法產(chǎn)生的數(shù)組都是兩維數(shù)組,即使引用的RANGE只有一行或一列。下標始于1,不受option base設(shè)置的影響。arr必需聲明為Variant類型。

Dim arr()
arr=range(“A1:F65536”)

2)將內(nèi)存數(shù)組數(shù)據(jù)寫入RANGE。在內(nèi)存數(shù)組經(jīng)過計算處理后,寫回時只需下句就可以了。

range(“A1:F65536”)= arr

2.非數(shù)組變量快于數(shù)組變量。當數(shù)組很大時,根據(jù)下標提取數(shù)值會比從單個變量慢得多,這時可以把需要多

次使用的數(shù)組值先賦給內(nèi)存變量。

3.減少使用REDIM的次數(shù)。REDIM是對數(shù)組操作中最費時的動作??梢韵阮A(yù)算大小,不夠或多余時再進行調(diào)整。

轉(zhuǎn)載請注明:本文來自:Excel吧 (www.excelba.com) 詳細出處參考:http://www.excelba.com/Art/Html/264.html

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
教程 | 10個值得收藏的VBA寫法(第1集)
完全手冊Excel VBA典型實例大全:通過368個例子掌握
VBA字典,精準控制字典鍵值回填的方法
VBA中函數(shù)的使用
Vba菜鳥教程[通俗易懂]
VBA教程:如何將二維表轉(zhuǎn)為一維表?
更多類似文章 >>
生活服務(wù)
分享 收藏 導長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服