VBA中的迴圈語句
2022-05-10由 VBA語言專家 發表于 漁業
doloop怎麼迴圈一定次數
首先歡迎各位朋友來到我這個平臺,分享成果,福不唐捐,總會有所收穫。無論是EXCEL的操作,還是VBA的操作,都會對大家有所幫助。在每日的講解過程中,對大家哪怕是一點點的收穫,我的時間也就是有意義的。
今日給大家講VBA的迴圈語句,這個是非常基礎的知識,在VBA的相關內容中我也一直在用,也在不斷的講解,今日專門作為一個專題給大家詳細的說明,中間也有一些有意思的小例子,供大家玩耍。
一 FOR NEXT語句 這種迴圈是以指定的次數,來重複執行的一組語句
這個結構一般是這樣的:
for counter= start to end [ step 步長值]
[statements]
[exit for]
[statements]
Next counter
具體解釋一下,初始值指的是迴圈開始的值,結束值指的是迴圈結束的值,實質上就是counter值的一個判斷,如果counter值在起始值和結束值之間,那麼進入迴圈語句,然後counter值每執行到next語句後會自動加一個步長值,直至counter值超出了初始值到結束值這個範圍,迴圈才會結束。這裡要說明一下”step 步長值“往往是省略掉的,省略掉的話,步長取預設值為1。下面將以一段小例項來具體說明這個結構的用法:
例項:在sheet1工作表中一次輸出1到100這些數,顯示在第一列中。
程式:
Sub kk()
Sheets(“sheet1”)。select
Dim i As Integer
For i = 1 To 100
Cells(i, 1) = i
Next
End Sub
二 For each …NEXT語句 這種迴圈主要功能是對一個數組或一個物件進行操作,讓所用元素執行一次迴圈語句
For each element in group
[statements]
[exit for]
[statements]
Nexr element
具體解釋一下,在for next迴圈中主要是數值變數,而for each …NEXT這種結構是物件變數。什麼意思呢?each……in指的是在這個物件集合裡面,一次將每一個物件都遍歷一邊。同樣的道理,執行到next後物件自動指到下一個。具體我們來看一下下面的一個例項。
例項:給一個數據區域a1:d5內的所有單元格隨機賦值。
分析:顯然資料區域就是一個物件集合,單元格就是這個集合裡面的物件
程式:
Sub JJ()
Sheets(“SHeet1”)。Select
Dim i As Integer
For Each c In Range(“a1:d5”)
c。Value = Rnd
Next
End Sub
三 DO loop 語句 在條件為true時,重複執行命令區域
DO WHILE CONDITION
[statements]
[exit do]
[statements]
LOOP
或者:
DO
[statements]
[exit do]
[statements]
LOOP WHILE CONDITION
備註:上面的while 可以用until 代替。
VBA中如果事先不知道將重複多少次迴圈,只是知道判斷的條件,那麼使用 Do。。。Loop 語句。Do。。。Loop 語句會重複執行某段程式碼直到條件是 true 或條件變成 true。重複執行程式碼的條件是 true,或者使用 While 關鍵字來檢查 Do。。。 Loop 語句的條件。
舉例:我們用Do While語句來解決求1—100的自然數的和的問題:
Sub my_sum()
Dim Lsum As Long, i As Long
i = 1
Do While i <= 100
Lsum = Lsum + i
i = i + 1
Loop
MsgBox “1到100的自然數和為:” & Lsum
End Sub
好了,到這裡把三個迴圈體都做了講解,上面也講到了三個例項,截圖如下,我都做了測試,可以使用。
今日內容迴向:
1 VBA 中三種迴圈體是什麼?
2 三種迴圈的區別和聯絡是什麼?
3 如果不知將迴圈多少次?用哪個迴圈體?
4 試著把第一個例子改成第三個的模式。