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