vba快速入门09-循环控制语句
文章目录
循环控制
所谓循环控制,即在循环执行一段代码,用于完成一些重复性任务。
VBA中的循环控制语句主要有3种:
- for循环
- Do……loop循环
- while循环
其中for循环最常用。
for循环
for循环有两种语句形式,for next
语句,和for each next
语句。通常for next
语句用于循环次数已知的,for each next
语句用于循环次数未知的。
for next
语句
格式如下:
|
|
其中,next后面的计数变量可以省略。
例1,循环打印数字1到10的累加。
|
|
for next
语句还有一个参数ー步长,用关键字step指定,格式如下:
|
|
使用Step关键字, 可以根据您指定的值来增加或减少计数器变量。省略step时,默认步长是1。
例2,计算1到10所有奇数的和.在下面的示例中, 每次i循环重复时, 计数器变量递增2。
|
|
for each next
语句
格式如下:
|
|
步长也可以是负数。
例3,计算1到10所有偶数的和。在下面的示例中, 每次i循环重复时, 计数器变量递增2。
|
|
for each next
语句格式如下:
|
|
For Each…Next语句会对循环对象中的每个对象重复语句块。在每次循环运行时,Visual Basic会自动设置一个变量。Next后面的循坏变量可以省略。
循环对象可以是一个集合对象或者数组。
例4,下面的代码将循环访问数组中的每个元素,并将每个元素的值设置为索引变量 I 的值。
|
|
以上程序的运行结果如下:
|
|
Do……loop循环
Do……loop循环也有两种形式。第一种是先判断循环条件再开执行,第二种先执行一次然后再判断循环条件是否成立。
先判断再执行
格式如下:
|
|
这里的[While | Until]表示两者随便用一个都可以。While就是当条件成立的时候就执行,而Until就是直到条件成立时就停止执行。也就是说,While用于指定循环的条件,说明什么时候就执行循环,而Until用于指定停止循环的条件,说明什么时候不再执行循环。
例5,计算1到10所有数的累加和。Do While……Loop,Do Until……Loop的写法。
使用While关键字的写法如下:
|
|
使用Until关键字的写法如下:
|
|
先执行再判断
格式如下:
|
|
先执行再判断,即将条件判断语句放到Loop的后面,先Do一次,然后再Loop While或者Loop Until。
例6,计算1到10所有数的累加和。Do……Loop While,Do……Loop Until的写法。
使用While关键字的写法如下:
|
|
使用Until关键字的写法如下:
|
|
while循环
While循环有点类似于Loop循环,先判断条件是否成立,再开始(或结束)循环。
格式如下:
|
|
例7,计算1到10所有数的累加和。While……wend的写法。
|
|
Exit语句
如果要中途退出循环怎么办?用Exit语句。 Exit语句可以退出 Do…Loop块、 For…Next 、 Function 、 Sub 或 Property代码(function,sub,Property将在以后的课程中介绍)。
Exit Do
退出Do...Loop
语句。 只能在Do...Loop
语句内使用它。Exit Do
将控制权转移给 Loop 语句之后的语句。 在嵌套的 Do…Loop语句内使用时,Exit Do
将控制权转移给发生Exit Do
的循环的上一嵌套层中的循环。
例8,在i等于6时,退出Do循环,也就是计算1到5的累加和。
|
|
Exit For
提供一种退出 For 循环的方式。 它只能用于For...Next
或For Each...Next
循环。 Exit For
将控制权转移给 Next 语句之后的语句。 在嵌套的 For 循环内使用时,Exit For
将控制权转移给发生Exit For
的循环的上一嵌套层中的循环。
例9,在i等于6时,退出For循环,也就是计算1到5的累加和。
|
|
参考资料:
https://docs.microsoft.com/zh-cn/office/vba/language/concepts/getting-started/using-for-eachnext-statements
https://docs.microsoft.com/zh-cn/office/vba/language/concepts/getting-started/using-doloop-statements
转载请注明本网址。