【正文】
ock = 1sum = 0counter = 1For counter = 1 To 1000 sum = sum + clock clock = clock + 1NextMsgBox 1+2+3+...+1000 = amp。 sum, vbOKOnly, 計(jì)算自然數(shù)之和End Sub5.運(yùn)行結(jié)果運(yùn)行程序代碼,結(jié)果如圖 所示。圖 運(yùn)行結(jié)果6.程序分析從上面的結(jié)果中可以看出,由于用戶(hù)計(jì)算的是自然數(shù)之和。所以,在代碼中不需要設(shè) 置參數(shù) Step 的數(shù)值。案例 15 為單元格賦值1.功能說(shuō)明在 Excel 中,由一種特殊的循環(huán)。在其循環(huán)結(jié)構(gòu)中,其循環(huán)運(yùn)算的范圍是一個(gè)區(qū)域。 例如,用戶(hù)需要在某工作表的單元格區(qū)域中進(jìn)行循環(huán)。這個(gè)時(shí)候,用戶(hù)可以使用 For Each … Next 循環(huán)語(yǔ)句。2.語(yǔ)法說(shuō)明在 Excel VBA 中,F(xiàn)or Each … Next 循環(huán)語(yǔ)句的語(yǔ)法格式如下:For Each 元素 In 對(duì)象集合[語(yǔ)句序列 1][Exit For] [語(yǔ)句序列 2]Next該循環(huán)結(jié)構(gòu)可在對(duì)象集合每個(gè)元素中執(zhí)行循環(huán)體。集合中必須至少有一個(gè)元素,才會(huì)進(jìn)入 For Each 循環(huán)體。循環(huán)結(jié)構(gòu)先對(duì)“對(duì)象集合”中的第一個(gè)元素執(zhí)行循環(huán)語(yǔ)句,然后對(duì) “對(duì)象集合”其他的元素執(zhí)行循環(huán)語(yǔ)句,當(dāng)“對(duì)象集合”中的所有元素都執(zhí)行結(jié)束,會(huì)退 出循環(huán)。在循環(huán)體中,用戶(hù)可以設(shè)置多個(gè) Exit For 語(yǔ)句,退出循環(huán)。3.案例說(shuō)明本例的主要功能是利用循環(huán)結(jié)構(gòu)為單元格區(qū)域賦值。4.編寫(xiě)代碼為單元格賦值的程序代碼如下:Sub GetValues()Dim counter As Integer Dim rng As RangeWorksheets(sheet1).Activate For Each rng In Range(A1:E10) = counter counter = counter + 1NextEnd Sub5.運(yùn)行結(jié)果運(yùn)行程序代碼,結(jié)果如圖 所示。圖 為單元格區(qū)域賦值6.程序分析從上面例子的結(jié)果中可以看出,循環(huán)結(jié)構(gòu)首先填充第一行單元格的數(shù)值,然后依次填 充其他行的數(shù)值,直到循環(huán)結(jié)束。案例 16 計(jì)算階乘和1.功能說(shuō)明在實(shí)際開(kāi)發(fā)中,用戶(hù)也許不會(huì)僅僅面對(duì)循環(huán)問(wèn)題,或者僅僅面對(duì)選擇問(wèn)題。很多復(fù)雜 問(wèn)題都是嵌套結(jié)構(gòu),循環(huán)結(jié)構(gòu)和分支結(jié)構(gòu)的嵌套,或者循環(huán)結(jié)構(gòu)之間的嵌套等。 2.語(yǔ)法說(shuō)明在 Excel VBA 中,編寫(xiě)嵌套循環(huán)的代碼時(shí),要注意循環(huán)語(yǔ)句的配對(duì)情況。如圖 所示,左圖是正確的嵌套關(guān)系,Next 關(guān)閉了內(nèi)層的 For 循環(huán),而 Loop 關(guān)閉了外層的 Do 循環(huán)。同樣,在嵌套的 If 語(yǔ)句中,End If 語(yǔ)句自動(dòng)與最靠近的 If 語(yǔ)句配對(duì)。嵌套的 Do...Loop 結(jié)構(gòu)的工作方式也是一樣的,最內(nèi)圈的 Loop 語(yǔ)句與最內(nèi)圈的 Do 語(yǔ)句匹配。圖 右圖 則是錯(cuò)誤的嵌套關(guān)系。Do While 邏輯表達(dá)式1 語(yǔ)句序列1Do While 邏輯表達(dá)式2 語(yǔ)句序列2For I=初值 to 終值 語(yǔ)句序列3Next I語(yǔ)句序列4Loop LoopDo While 邏輯表達(dá)式1 語(yǔ)句序列1Do While 邏輯表達(dá)式2 語(yǔ)句序列2For I=初值 to 終值 語(yǔ)句序列3Loop語(yǔ)句序列4Next Loop圖 正確的嵌套(左)與錯(cuò)誤的嵌套(右)3.案例說(shuō)明本例將演示計(jì)算 1!+2!+3!+……+10!的結(jié)果,并輸出結(jié)果。4.編寫(xiě)代碼計(jì)算結(jié)果的程序代碼如下:Sub SumProduct()Dim sum As Double Dim i As IntegerDim DouProduct As Double Dim j As Integersum = 0For i = 1 To 10DouProduct = 1 For j = 1 To iDouProduct = DouProduct * j Nextsum = sum + DouProduct NextMsgBox 1! + 2! + 3! +...+ 10! = amp。 sum, vbOKOnly, 求階乘的和End Sub5.運(yùn)行結(jié)果運(yùn)行程序代碼,得到的結(jié)果如圖 所示。圖 計(jì)算階乘的和6.程序分析使用 Excel VBA 的嵌套結(jié)構(gòu),用戶(hù)可以處理許多復(fù)雜問(wèn)題,只是在使用嵌套結(jié)構(gòu)時(shí), 用戶(hù)需要特別注意匹配問(wèn)題。