在实际的工作当中我们要对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 |
|