【正文】
圖 計算階乘的和6.程序分析使用 Excel VBA 的嵌套結(jié)構(gòu),用戶可以處理許多復雜問題,只是在使用嵌套結(jié)構(gòu)時, 用戶需要特別注意匹配問題。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。圖 右圖 則是錯誤的嵌套關系。同樣,在嵌套的 If 語句中,End If 語句自動與最靠近的 If 語句配對。 2.語法說明在 Excel VBA 中,編寫嵌套循環(huán)的代碼時,要注意循環(huán)語句的配對情況。案例 16 計算階乘和1.功能說明在實際開發(fā)中,用戶也許不會僅僅面對循環(huán)問題,或者僅僅面對選擇問題。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é)果如圖 所示。在循環(huán)體中,用戶可以設置多個 Exit For 語句,退出循環(huán)。集合中必須至少有一個元素,才會進入 For Each 循環(huán)體。這個時候,用戶可以使用 For Each … Next 循環(huán)語句。在其循環(huán)結(jié)構(gòu)中,其循環(huán)運算的范圍是一個區(qū)域。所以,在代碼中不需要設 置參數(shù) Step 的數(shù)值。 sum, vbOKOnly, 計算自然數(shù)之和End Sub5.運行結(jié)果運行程序代碼,結(jié)果如圖 所示。循環(huán)變量=初始值Exit For循環(huán)變量累加步長值循環(huán)變量超過終值?真假語句序列1語句序列2下一語句圖 For …Next 流程圖3.案例說明根據(jù)循環(huán)結(jié)構(gòu)計算 1+2+3+…+1000 的數(shù)值。如果步長值為負,則初始值必須大于等于終值,才能執(zhí)行循環(huán)體。步長的默認數(shù)值是 1,并且可正可負。2.語法說明在 Excel VBA 中,如果知道循環(huán)的次數(shù),可以使用 For…Next 循環(huán)語句來執(zhí)行循環(huán)。其中,最典型的例子就是計算自然數(shù)的總和。案例 14 計算自然數(shù)之和1.功能說明當用戶在進行循環(huán)運算的時候,有時可能了解具體循環(huán)的次數(shù)。 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)是 Excel VBA 中經(jīng)常使用的一種程序結(jié)構(gòu),當用戶需要使用程序代碼反復完 成同一任務的時候,則需要使用循環(huán)結(jié)構(gòu)。圖 原始數(shù)據(jù)4.編寫代碼計算銷量金額的代碼如下: Sub GetIne() Dim IntSale As Integer Dim discount As SingleDim SingleMoney As Single Dim i As IntegerDim IntPric As Integer For i = 2 To 10IntPric = Cells(i, 1).Value IntSale = Cells(i, 2).ValueSelect Case IntSale Case Is = 100discount = Case Is = 150discount = Case Is = 200discount = Case Is = 300discount = Case Elsediscount = End SelectSingleMoney = IntSale * IntPric * discount Cells(i, 3).Value = SingleMoneyNext i End Sub5.運行結(jié)果打開工作薄,運行程序代碼,得到的結(jié)果如圖 所示。例,Case 8 To 12, 17, Is35。例,Case Is45 表示所有大于 45 的值。例,Case 8 To 12 表示 8~12 之間的值。例:Case 5,8,9。如果在列表中有多個值,需要用逗號將各值分開。