前言:
现时兄弟们对“oracleloopwhile”可能比较关注,各位老铁们都需要了解一些“oracleloopwhile”的相关知识。那么小编也在网摘上汇集了一些关于“oracleloopwhile””的相关文章,希望看官们能喜欢,同学们一起来学习一下吧!大家好,我是永不止步的老牛。
上一篇我们介绍了VBA判断语句,本篇我们介绍VBA循环语句Do…While。
当我们在VBA编码中,在程序中需要重复执行某些代码时,就要用到循环语句,那些被重复执行的代码叫循环体,循环体加上循环的终止条件就是循环语句。
我们先看下Do...While的语法:
Do While 条件
代码1
代码2
代码n
Loop
执行这个循环语句时,首先先判断条件,如果是False,就执行Loop后面的代码,就是跳出循环体,相当于循环结束;如果是True,就执行代码1…代码n,当执行到loop时,就再次回到Do While 条件处,再次判断条件,如果是False,就执行Loop后面的代码,如果是是True,就执行代码1…代码n,当执行到loop时,就继续回到Do While 条件处,继续判断条件……一直这样循环,直到条件等于False。
我们用例子来展示一下,下表中如果1月销量大于100,就将数字变成粗体,代码如下:
Sub 设置粗体()
Dim i As Integer
i = 2
Do While Range("C" & i) <> ""
If Range("C" & i).Value >= 100 Then
Range("C" & i).Font.Bold = True
End If
i = i + 1
Loop
End Sub
首先定义了变量i,并给i赋值2,执行到Do While语句时,判断条件,条件中的Range("C" & i)就表示单元格C2,就是判断单元格C2的值是不是为空,如果不为空就执行循环体代码,循环体内的IF语句判断单元格C2的值,如果大于等于100,就将单元格C2的值设置成粗体,此时因为我们下来要判断的是C3单元格,所以就要给i加1,让下次Do While条件中的Range("C" & i) 变成了单元格C3,以此类推,直到循环到C6单元格,等于空,就跳出Do While循环,执行Loop语句后面的代码。
还可以用Cells(行号, 列号)来表示一个单元格,上述代码可以修改成:
Sub 设置粗体()
Dim i As Integer
i = 2
Do While Cells(i, 3) <> ""
If Cells(i, 3).Value >= 100 Then
Cells(i, 3).Font.Bold = True
End If
i = i + 1
Loop
End Sub
还可以用ActiveCell来控制,如下:
Sub 设置粗体3()
Range("C2").Select
Do While ActiveCell.Value <> ""
If ActiveCell.Value >= 100 Then
ActiveCell.Font.Bold = True
End If
ActiveCell.Offset(1, 0).Select
Loop
End Sub
语句Range("C2").Select表示选中了C2单元格,此时ActiveCell就是C2单元格,因为没有用到变量来控制循环,所以在循环体尾部,ActiveCell.Offset(1, 0).Select,就是让单元格往下移动1格。
Do While循环就是判断某个条件,如果是True,就执行循环体,直到条件返回False。
上述代码我们设置的条件是判断单元格是否为空,和具体有多少行数据没有关系,我们演示多复制一些数据,代码不需要变化,一样的效果。
特别要注意的是:一定要正确设计循环,避免无限循环,就是俗称的死循环,ESC也无法停止该循环,新手特别容易忽视循环的正确退出。
Do…While循环还有另外一种形式,语法如下:
Do
代码1
代码2
代码n
Loop While 条件
先执行代码1…代码n,然后判断条件,如果条件返回False,就跳出循环,如果条件返回True,就继续执行循环体代码1…代码n,然后再次判断,直到条件返回False,跳出循环。
这种形式的循环,循环体代码1…代码n最少被执行一次。
如果在循环体代码1…代码n中,如果满足某种情况,不想继续执行循环,直接跳出循环,可以使用语句Exit Do。
Exit Do 表示立即停止循环,跳出循环执行Loop之后的代码。
下面的示例演示了,从C2开始,往下循环,将第一个大于等于100的数字变成粗体。
为了看清楚循环体执行了几次,循环体的第一句就是将Range("C" & i)的值输出到立即窗口,可以看到执行到第5次,就是单元格C6时,因为值是110,大于100,设置成粗体,执行Exit Do,跳出循环。
今天就介绍到这,大家最好能自己实际练习一下,下一篇文章我们介绍VBA的其他循环语句。
标签: #oracleloopwhile