大家好,本节将详细介绍循环结构中的for...next指定次数循环语句。
循环结构类似于汽车发动机,它利用计算机的运算能力,重复执行一段代码,从而完成大量有规则的重复运算,其中的for...next语句是以指定次数来重复执行的循环体。
下面先介绍for...next语句基础知识,再通过两个示例来具体介绍。
For...Next语句基础知识
下面先看下for...next语句的的完整语法结构,其中[ ]中的内容是可以选择性省略的部分。
For 循环变量= 初始值 TO 终值 [step 步长值]
语句序列1
[exit for]
[语句序列2]
next [循环变量]
语句中For 循环变量= 初始值 TO 终值 [step 步长值] ,决定变量的取值范围,再结合步长值决定了循环次数,步长值为1时可以省略。
比如For 循环变量 = 1 to 10 setp 1,就代表变量从1开始,每循环一次,循环变量值增加1,直到变量值为10为止,变量也在循环中从1增加到10。
步长值同样可以为负数,但初始值和终值的大小就需要颠倒,如for 循环变量= 10 to 1 step -2。
同时for..next循环语句可以通过exit for退出循环,通常需要嵌套if...then来判断是否执行exit for,后面通过举例说明。
for...next 语 句 示 例 一
下面举例来介绍for循环,求1至100以内的所有偶数之和。
思路是利用for...next循环得到1至100以内所有的偶数,并在每次循环时加到一个固定的变量上,代码如下:
(这里需要先说明代码中的 j=j+i 这个表达式,是现在的i和j的值相加后,重新赋值给j,让j的值改变。)
定义了i和j两个整形变量,过程开始运行后,变量j首先被赋值为常数0。然后进入for...next循环结构,当i的值变为2时,j+i=0+2=2,重新赋值给变量j为2,再下一个循环,i的值变为4,j为2。再j+i=2+4=6,在重新赋值给j值为6.....依次类推,直到i的值变为100时结束,j累加的最后的结果2550为偶数之和。
for...next 语 句 示 例 二
第二个例子是if...then语句来判定是否执行exit for退出循环,涉及判断结构和循环结构的简单嵌套,下面先演示下小程序运行的效果,插入了按钮来指定运行宏程序。
那么我们先来看下全部添加颜色和去掉颜色两个按钮指定的宏程序代码。
(注释:代码中Range("a" & i).Interior.ColorIndex = 5代表的意思是单元格的背景颜色属性设为某个颜色,5对应蓝色,2对应白色。涉及对象和属性的先简单扩展,先了解即可后续会详细讲解。)
所以全部显示为蓝色的过程,其实就是循环了50次让A1单元格到A50单元格的背景颜色全部显示为蓝色。而去除颜色,就是通过循环让A1到A50单元格背景色都显示白色。(50次为随意设置的。)
那么现在我们希望程序运行时就只覆盖非空值的部分,如何实现呢?我们的思路就是循环过程中,遇到单元格为空值的时候,就判断停止循环,不再添加颜色,那么下面我们看具体代码。
把其中的判断结构代码剥离出来如下。判断结构只用于判断是否执行exit for退出循环。
Sub 非空区域添加颜色()
Dim i As Integer
For i = 1 To 50
判断语句是否要退出循环
Range("a" & i).Interior.ColorIndex = 5
Next i
End Sub
过程的运行,单元格从A1开始循环,先通过if...then语句进行判断,如果该单元格为空值那么就exit for退出循环,不再执行for..next循环中的改变背景颜色代码。。
如果单元格不是空值,就不退出循环,就继续执行循环中的让背景颜色变蓝色代码,最后结果就是只覆盖了非空的单元格。
这里需要注意下更改背景颜色的代码,不要写在判断语句之前,否则第一个空值的单元格会变成蓝色后,程序才退出循环。
这个例子也是for...next循环语句与if...then 判断语句的简单嵌套,后期还逐步介绍复杂的嵌套。
本节主要介绍指定次数循环for...next的完整语句结构,以及如何利用if...then判断语句来exit for退出循环,涉及判断结构和循环结构的简单嵌套,顺便扩展了一下对象和属相的知识点,后续会有详细介绍,欢迎关注我的公众号,祝大家学习快乐。
本文分享自 Excel和Access学习笔记 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!