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