在Excel巨集語法中,迴圈的控制有很多種,上次是使用Do While的迴圈,為了可以更靈活及孰悉的應用迴圈的寫法,這次我將示範for next的迴圈。
這次也將沿用上次的例子,當按下圖1箭頭處的綠色“Start”按鈕,則cell A2將每次累加1,直到cell A2等於所設定的數值100,如圖2。
圖1 |
0000-1
圖2 |
0000-2
第一步:修改程式。先打開上次的例子,依照下圖3將程式修改成圖4的程式。
1.將Do While j <= i改成 For j = 1 To i
2.將 Loop 改成 Next j
圖3 |
0000-3
圖4 |
0001-1
For…Next是不是看起來也很直覺,
“For j = 1 To i”是不是可以翻譯成“當j等於1到i之間”則執行迴圈。
“Next j”則可以翻譯成當迴圈執行完後,就做“下一個j”。
第二步:單步執行程式,驗證程式。
按第1次F8,程式開始
0002
按第2次F8
0003
按第3次F8
0004
按第4次F8,此時可以將滑鼠游標移到“j = j +1”這行程式碼的前面,則會出現一個小方塊,這樣我們就可以觀察現在j的值是多少。此時j=1,因為我們從“For j = 1 To i”這行就已經將j的初始值定為1。
0005
按第5次F8,“j = j +1”這行變成黃色,但其實程式正要執行這行程式,當再按一次F8時,程式移到下一行“Next j”,這才表示程式已做完“j = j + 1”,此時小方塊中的j值才會發生變化。
0006
按第6次F8,“Next j”這行變成黃色,表示程式已完成上一行“j = j +1”,此時小方塊中的j值變化成2,並即將執行“Next j”。
0007
按第7次F8,“Cells(2, 1).Value = j”這行變成黃色,表示程式已完成上一行“Next
j”,此時可看出小方塊中的j值已變化成3。
0008
按第7次F8
0009
按第8次F8
0010
按第9次F8
0011
按第10次F8
0012
按第11次F8
0013
按第12次F8
0014
按第13次F8
0015
按第14次F8
0016
按第15次F8,各位是否發現奇怪的現象,j的值是從1,每次累加1,但是觀察Cell A2的值卻是1、3、5、7、9‧‧‧,每次累加2的變化。因為“Next j”本身就已經具有每次加1的特性了,我在迴圈中又再加了“j = j + 1”這行程式,所以等於每做一次迴圈,每次增加不是1,而是每次增加2。
0017
第三步:修改程式,如圖。將“j = j + 1”這行刪除,並將“For j = 1 To i”改成“For j = 0 To i”,j的初始值才會是0,這樣j才會從0一直記數到100
0018
0019
參考資料:
我有迴圈巨集 想請教 釋手有高手 可以加我 LINE melon681204 幫幫我
回覆刪除