循环语句之 For Each..Next 在Excel中的应用
当需要处理集合成员时,一般会用 For Each...Next,实际上就是处理对象
实例应用:判断是否等于“A1”是就填充底色为红色
Sub foreachnext循环1()
Dim rng As Range, n!
For Each rng In Sheet1.Range("a2:a10") '取a2:a10中的每个单元格
If rng = "A1" Then rng.Interior.ColorIndex = 3 '判断取的每个单元格值是否等于A1,等于就给单元格底色填充为3(红色)
Next
End Sub
实例应用:取出当前工作簿的工作表名
Sub foreachnext循环2()
Dim wsh As Worksheet, n As Byte, m As String
For Each wsh In Worksheets '取当前工作表集合中的每个成员
n = n + 1
m = wsh.Name '最后这两行代码,可以合成:Sheet1.Cells(n, 3) =wsh.Name
Sheet1.Cells(n, 3) = m
Next
End Sub
For...Next也是循环语句,与Do...Loop不同之处在于,For Next 有一个内置的计数器
Sub fornext循环2()
Dim i!, j!
For i = 1 To 100 '可在后面加上 step 1 即步长值(默认就是step,所以可以忽略不写)
j = j + i
Next
MsgBox j
End Sub
实例应用:对D列进行金额计算
Sub fornext循环实例()
Dim rng!
For rng = 2 To 16 '从2行循环到16行
Sheet1.Cells(rng, 4) = Sheet1.Cells(rng, 2) * Sheet1.Cells(rng, 3)
Next
End Sub
***For...Next小结与实例***
----------------------------------------------------------------------------------------------------------------------------------
For...Next 语句
以指定次数来重复执行一组语句
语法:
For 计数变量 = 初始值 To 终止值 [Step 步长值]
[执行的一条或多条语句]
[Exit For]
[执行的一条或多条语句]
Next [计数变量]可以忽略不写
--------------------------------------------------------------------------
1.循环中可以在任何位置放置任意一个Exit For 语句,随时退出循环。
2.Exit For 与 If...Then 经常一起使用,目的是:找到符合条件后,跳出循环,而不必再进行不必要的循环。
例子:根据表格中的数据,统计出2班的人数
Sub test()
For i = 1 To 16
If Cells(i, 1) = "2班" Then Exit For '找到2班的起始位置
Next i
For j = 1 To 16
If Cells(j, 1) = "3班" Then Exit For '找到3班起始位置
Next j
MsgBox "2班的人数为:" & j - i '3班起始位置行号-2班起始位置行号
End Sub
3.可以将一个 For...Next 循环放置在另一个 For...Next 循环中,组成嵌套循环。
For i = 1 To 10
For j = 1 To 10
For k = 1 To 10
.........
Next k
Next j
Next i
例子:理解计数变量的运行
Sub 理解计数变量的运行()
For i = 1 To 2
For j = 1 To 3
k = "外层的第" & i & "次的,内层的第" & j & "次"
Next j
Next i
End Sub
实例应用:制作九九乘法表(如图)
Sub 九九乘法表制作()
Dim a!, b!
For a = 1 To 9
For b = 1 To 9
If b > a Then
Sheet1.Cells(a, b) = ""
Else
Sheet1.Cells(a, b) = a & "x" & b & "=" & a * b
End If
Next
Next
End Sub