GOTO 語句
IF-Then 結(jié)構(gòu)
Select Case 結(jié)構(gòu)
For-next 結(jié)構(gòu)
DO While 結(jié)構(gòu)
Do Until 結(jié)構(gòu)
GOTO 語句
這個語句是我們最常用的改變執(zhí)行過程的語句,這個語句就是可以將程序執(zhí)行的路徑轉(zhuǎn)移到我們指定的指令上面,但是需要注意的是,這個跳轉(zhuǎn)語句只能在一個子過程中間跳轉(zhuǎn),而不支持在模塊之間跳轉(zhuǎn)。舉個栗子,如下所示代碼:
在本輪中使用GOTO語句的作用是,當(dāng)我們的等式成立的時候,就直接跳轉(zhuǎn)出來,顯示我們需要的結(jié)果,需要注意的是,我們GOTO后面接的是我們要跳轉(zhuǎn)的字符,我們需要跳轉(zhuǎn)的字符標(biāo)簽位置需要增加冒號(文本必須要冒號,數(shù)字可以不需要冒號),這樣可以加快執(zhí)行的速度。
一般情況下,我們并不建議你使用GOTO語句,因為使用這個了,讓程序變得比較難看懂,在另外的情況下,比如跳過程序中間的錯誤值,我們可以使用GOTO語句。
IF-Then 結(jié)構(gòu)
在VBA代碼中最常見的判斷語句就是我們的IF-Then 結(jié)構(gòu),這個是非常重要的判斷語句,這個結(jié)構(gòu)我們用于單條件或者多條件判斷。舉個栗子,如下:
以上是單條件判斷語句,當(dāng)我們的代碼只有一行的時候,可以不寫END IF。但是如果分成2行的話,就必須寫上,否則會報錯的,他們是一一對應(yīng)的。
我們現(xiàn)在看看一個if then多條件判斷結(jié)構(gòu),如下所示:
就是利用判斷語句,對我們的X值就行判斷,如果一旦符合就執(zhí)行完成此段代碼。
其實這個語句和我們的IF函數(shù)非常類似,當(dāng)然VBA中間還有一個IIF函數(shù)的使用方法和IF函數(shù)的方式一樣,我們就不一一解釋了。
Select Case 結(jié)構(gòu)
當(dāng)我們在多個選擇之間做出選擇的時候,我們就可以使用這個結(jié)構(gòu),就可以看到這個結(jié)構(gòu)是有多么的方便了。他和我們的IF THEN結(jié)構(gòu)可以相互替代,用法如下:
其實這個結(jié)構(gòu)我們非常好理解,需要注意的是每個Case語句的下方,可以寫很多的執(zhí)行代碼,當(dāng)條件滿足的時候,我們的程序都會執(zhí)行。需要注意的一點是,為了既包括程序的執(zhí)行速度,我們需要將把最優(yōu)可能的情況,放置在最前面,這樣效率就能最大化。
For-next 結(jié)構(gòu)
這個循環(huán)也是我們最最常用的循環(huán)語句,是我們最好的一個循環(huán)語句。他的具體用法如下:
其實這個結(jié)構(gòu)是非常簡單的,需要把我們要執(zhí)行的代碼放置在中間即可,就相當(dāng)于累計進(jìn)行循環(huán)執(zhí)行。在使用這個結(jié)構(gòu)的時候,循環(huán)計數(shù)器就是我們的I,是一個變量的存在,需要你理解好這一點知識。當(dāng)然我們可以控制循環(huán)執(zhí)行的次數(shù)或者要求,如下,我們需要求出1-100之間偶數(shù)的平方求和:
在這個子過程中,我們利用循環(huán)的步長,進(jìn)行提取偶數(shù),然后進(jìn)行平方求和累計,得到我們最后要的結(jié)果。當(dāng)然我們在使用這個結(jié)構(gòu)的時候,我們可以使用Exit for提前退出循環(huán),如下所示:
另外需要說明的一點是,循環(huán)可以多次嵌套,支持多次使用。
DO While 結(jié)構(gòu)
這個結(jié)構(gòu)是VBA代碼給我們的另外一種循環(huán)的結(jié)果,與For Next循環(huán)不同的是,只有在滿足的情況下才會執(zhí)行程序。這個結(jié)構(gòu)有2個使用方法,如下圖所示的的用法:
以上的2個結(jié)構(gòu),不同之處就是第一個結(jié)構(gòu)有可能從來都不執(zhí)行循環(huán)的內(nèi)容,第二個語法,則是至少執(zhí)行一次循環(huán)的內(nèi)容。當(dāng)然這個結(jié)構(gòu)也支持提前退出語句Exit Do,此時循環(huán)理解結(jié)束,將會退出循環(huán)。
Do Until 結(jié)構(gòu)
這個結(jié)構(gòu)和我們的DO While結(jié)構(gòu)是非常類似的,只有在我們條件滿足時候,他們執(zhí)行才會稍微有差異。在Do While的結(jié)構(gòu)中,我們循環(huán)的條件為真的時候就執(zhí)行循環(huán),而在Do Until結(jié)構(gòu)時候,一直執(zhí)行循環(huán),直至循環(huán)條件為真的時候。舉個例子,如下:
Do Until的2種循環(huán)結(jié)構(gòu),我們只需要合理應(yīng)用即可。
以上就是我們今天和大家說的代碼的中的控制代碼執(zhí)行的使用方法,其實VBA代碼學(xué)習(xí)起來非常簡單,他就是一個腳本語言的存在,他有自己的條條框框,你按照他的游戲規(guī)則來寫代碼就可以。如果有不明白的或者不懂的可以在下方留言,我們會一一解答的。
我是Excel教案,關(guān)注我持續(xù)分享更多的Excel技巧!