農林漁牧網

您現在的位置是:首頁 > 漁業

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

好了,到這裡把三個迴圈體都做了講解,上面也講到了三個例項,截圖如下,我都做了測試,可以使用。

今日內容迴向:

VBA中的迴圈語句

1 VBA 中三種迴圈體是什麼?

2 三種迴圈的區別和聯絡是什麼?

3 如果不知將迴圈多少次?用哪個迴圈體?

4 試著把第一個例子改成第三個的模式。