vba第十课
do……loop循环
do……loop循环语句,直到满足某个条件才结束循环
例:
Sub 循环()
Dim a%
Do
a=a+1
if a>10 then
msgbox a & “终于大于10”
exit do
end if
loop
end sub

解释:1、a=a+1
当定义变量a时,a的值默认为0,也就第二个a为0,第一个a等于0+1当循环第二次时,第二个a为前一次运行的值为1,第一个a等于1+1,以此类推,直到循环结束
2、Exit do
这一句的意思是当满足a>10时退出循环,如果没有这个一句,此程序会一直循环下去,也就是我通常说的死循环,跳不出程序了,所以在if下当满足第一个条件时会终止循环
例:
Sub 考评()
Dim a%
a = 1
Do
a = a + 1
If a > 11 Then
Exit Do ‘当工作表循环到第11行时跳出循环,如果不到11就执行else语句
Else
If Sheets(1).Range("f" & a) >= 260 Then Sheets(1).Range("g" & a) = "优秀"
End If
Loop
End Sub

注释:1、a=1
为什么a要设初始值为1呢,我们看到工作表中第一行为标题行不是我们需要判断的地方,需从第二行F2单元格开始,当我们运行到a=a+1时,a就等于2了,下面的语句sheets(1).range(“f” & a)就是表示单元格F2,单元格也就往下循环了,注意“f”后面要空一格,&后面也要空一格,这是代码规则。
2、else
Else下面还可以接if甚至还可加上Do……loop语句,可以多层嵌套,只要你的程序需要进行判断或循环
3、>=
表示大于并等于,此例子要求是将总分大于或等于260分以上的人在考评一栏中填上优秀
有兴趣的可以将下面图片的要求加入代码程序中

如果觉得有帮助的话记得关注和点赞,有不懂的地方可以私信我,需要表格素材的也可私信给我转发给你们。
如果各位在实际工作中遇见excel常规方法无法解决的或操作比较复杂的报表可以私信我,可以免费编写代码来解决!