vba 跳出for迴圈 VBA 從一而終For迴圈

2021-10-16 16:46:37 字數 2093 閱讀 1630

今天,我們來學習下vba**鏡率不亞於if語句的,for迴圈語句。

掌握了這兩種語句,可以搞定90%的基本功能。

組合起來使用,更是其樂無窮!

接下來,我們將學習for迴圈語句的兩種基本結構。

主要分為:①for ....next迴圈結構, ② for each ....next 迴圈結構。

01 for....next迴圈結構

首先,我們來了解下for ....next迴圈結構。

它的主要過程是,我們先設定乙個範圍,在這個範圍中,系統會不斷重複執行我們設計的乙個或幾個步驟,輸出結果。

當不在範圍內時,這些步驟不會被執行。

打個比方,我們要炒蛋,炒幾個蛋,放什麼調料,什麼時候翻面,什麼時候放調料,我們都預先設定好了,我們需要期待的,就是會炒出什麼樣的蛋。

for next 結構的**格式如下:

for i=初始值 to 結束值 step 步長

操作1操作2

next

接下來,我們舉個例子來說明上面**的意思。

例如:滷蛋是個投資小白,他聽從滷飛師兄的建議,每個月固定投資1500塊錢,投資一年,假定每個月的收益是本金的0.8%。這個時候,初始值就是1月份,結束值就是12月份,步長就是1個月。這3個值確定了迴圈的次數。

然後,操作1就是每個月投資1500塊錢。操作1,操作2,……操作n,就是我們讓系統重複執行的步驟。當時間變為明年1月份時,已經不在我們約定的範圍內(今年1月-今年12月),設定的操作也就不會再執行了。

對應的vba**,核心就是:

for i = 1 to 12 (step 1)

滷蛋這個月所有的錢=滷蛋上個月所有的錢 * (1+收益率) +1500

next(步長為1時,step 1 可以省略)

當投資金額達到1萬塊的時候,滷蛋發現自己很有錢了,決定不繼續投資了。對應的vba**如下:

for i = 1 to 12

if 投資金額》10000 then

exit for '跳出迴圈

else

滷蛋這個月所有的錢=滷蛋上個月所有的錢 * (1+收益率) +1500

投資金額= 截止上月累計投資金額+1500

end if

next

02 for each....next迴圈結構

接下來,我們來了解下for each ....next迴圈結構。

它和for....next結構相似,唯一的區別在於,加上了each,each後面會有乙個物件,比如range,workbook等。

關於的物件的說明,可以檢視下面這篇文章。資料大作手:寫vba**前你所需要掌握的概念(上)​zhuanlan.zhihu.com

for each ....next結構的**格式如下:

for each 物件變數 in 集合 操作1

操作2 ......

next

例如:在a1:d6這一區域,每個單元格輸入乙個隨機值,將所有的值求和,判斷是不是偶數。

for each i in range("a1:c6")

i.value = int(rnd() * 100) + 1

sum_range = i.value + sum_range

next

在這裡,物件變數就是i,也就是某乙個單元格。

集合,就是a1:d6這一區域。

完整版**如下:

sub 判斷偶數()

dim sum_range as integer

sum_range = 0 '定義單元格求和的初始值為0

for each i in range("a1:c6") '在符合a1:c6 範圍內的條件時做迴圈

i.value = int(rnd() * 100) + 1 '隨機生成1-100的整數值

sum_range = i.value + sum_range '將單元格的值求和

next

if sum_range mod 2 = 0 then '判斷是不是偶數

msgbox "這些單元格的求的值是" & sum_range & "是偶數哦"

else

msgbox "這些單元格的求的值是" & sum_range & "不是偶數哦"

end if

end sub

vba 跳出for迴圈 VBA的基本語句

塊 的形式的vba語句比完整一行的 功能和適用性方面更強。二選一 if 條件表示式 then 條件表示式返回true時要執行的操作和計算 else 條件表示式返回false時要執行的操作和計算 end if 多選一 if 條件表示式 then 條件表示式返回true時要執行的操作和計算 elseif...

VBA 中的各種迴圈

利用迴圈和分支語句判斷 b 列數字的符號,將結果填入 c列。原始 如如下 1 for 迴圈和 if 語句,如下 sub sign dim sign as string,i as integer 宣告變數 for i 3 to13 step 1if cells i,b 0 then sign 負數 e...

vba遍歷字串 迴圈遍歷VBA中的指定工作表

您在問題中顯示的 因以下原因而失敗 assets array pipe mat tables pipe diam tables pipe length tables assets是一種工作表,它是一種object,在為物件賦值時必須使用set set assets array pipe mat ta...