vba十四课
for……next实例
for……next是指定次数重复执行的一组语句
语法:for 计数变量=初始值 to 终止值 [step步长值]
在for next语句中还有一个知识点就是exit for
当我们在for循环中,它一定会按计量变数的数值循环完毕,举个例子,当有1000次循环时,满足循环条件的循环在100次,这时代码还继续往下循环直到1000次循环完毕后方才跳出循环,而后面的900次循环对我们来说是没有意义的,这时就需要exit for了,同时也提高了程序的运行效率,缩短程序的运行时间。
例:查找表一A列姓名为李四的单元格,并把李四所在的单元格背景色设为红色
Sub fornext循环()
Dim a!
For a = 2 To 11
If Sheets(1).Range('a' & a) = '李四' Then
Sheets(1).Range('a' & a).Interior.ColorIndex = 3
Exit For
End If
Next
End Sub
注释:当a=5的时候满足条件,然后exit for退出了循环,也就是a等于6至11就不执行了,直接跳出for循环
例:制作乘法口决表
Sub 乘法口决表()
Dim a!, b!
For a = 1 To 9
For b = 1 To 9
If b > a Then
Sheets(2).Cells(a, b) = ''
Else
Sheets(2).Cells(a, b) = a & 'x' & b & '=' & a * b
End If
Next
Next
End Sub
注释:
1、这段代码中用了两个for,怎么理解呢,首先a=1 ,然后b=1循环至9,跳出第二个for的循环,接着a=2,b再次循环至9,直到a循环至9为止跳出第一个循环,而b呢进行了九次循环,a只进行了1次循环,这就是多循环的层级关系,至此两个for语句就都循环完毕了
2、Sheets(2).Cells(a, b) = ''
当b>a的时候,单元格cells(a,b)的值为空, b在单元格cells(a,b)中代表列号,a 代表行号,而根据乘法口决表的规则,上半部是不显示的,所以为空
3、Sheets(2).Cells(a, b) = a & 'x' & b & '=' & a * b
当b<>
这段代码大家可以单步执行,运行一下,理解它的逻辑,只要理解清了这段代码是很好理解的,最好大家自己写一下,包括我前面的文章,只有自己多写代码才能学好它,光看是不能学好vba的,也希望与大家多多互动,有问题可以私信我。
如果觉得有帮助的话记得关注和点赞,有不懂的地方可以私信我,需要表格素材的也可私信给我转发给你们。
如果各位在实际工作中遇见excel常规方法无法解决的或操作比较复杂的报表可以私信我,可以免费编写代码来解决!
联系客服