上一章給大家分享了SelectCase結構形式並且和IF結構做了比較,今天這一章給大家分享一下VBA基本語法中比較重要的結構For迴圈結構。
在實際的工作當中我們要對excel表格的資料進行大量的重複操作,這時我們就需要For Next結構形式來處理,這樣就把複雜的重複問題給解決了。
先看一下For Next的語法結構?
For 迴圈變數=初始值 to 結束值 step 步長
迴圈體
Exit For
Next 迴圈變數
下面具體解釋一下看截圖:
方便理解我畫一個For…….Next迴圈的流程控制圖:
注意:該流程圖中的迴圈變數自加1(迴圈變數=迴圈變數+1),如果你的步長不是1,那麼就不是自加1,是你自己設定的步長數(迴圈變數=迴圈變數+步長)
先舉一個簡單的例子:
利用for……next實現excel中的單元格,隔行變色。
程式碼1:
Sub ff()
Dim i As Integer
For i = 1 To 10 Step 2
Worksheets("sheet36").Cells(i, "B").Interior.Color = RGB(255, 0, 0)
Next
End Sub
再舉個例子:
利用for……next迴圈結構來把這張表格答應輸出到另外一張表格中,再利用迴圈結構求出總分並輸出到表格中(實際意義不大,主要是熟悉for迴圈的使用)
空的資料表格:
程式的具體解釋如下:
程式碼2:
Sub s()
Dim arr() As Variant
Dim v As Integer, n As Integer, m As Integer
Dim i As Integer, j As Integer, k As Integer, h As Integer
j = WorksheetFunction.CountA(Worksheets("sheet37").Range("A:A"))
ReDim arr(1 To j) As Variant
For h = 1 To j
For i = 1 To j
arr(i) = Worksheets("sheet37").Cells(i, h)
Next
For k = 1 To j
Worksheets("sheet38").Cells(k, h) = arr(k)
If h >= 2 Then
If Worksheets("sheet38").Cells(h, 3) >= 80 And Worksheets("sheet38").Cells(h, 4) > 70 Then
Worksheets("sheet38").Cells(h, 6).Font.Color = RGB(0, 255, 0)
End If
End If
Next
Next
For v = 1 To 7
k = 0
Worksheets("sheet38").Cells(v + 1, 6) = 0
For n = 1 To 7
If n > 2 Then
k = k + Worksheets("sheet38").Cells(v + 1, n)
End If
Next
Worksheets("sheet38").Cells(v + 1, 6) = k
Next
End Sub