vba中三种循环语句的讲解及实例应用(vba中三种循环语句的讲解及实例应用方法)
导语:VBA中三种循环语句的讲解及实例应用
首先欢迎各位朋友来到这个平台,分享自己的成果,福不唐捐,总会有所收获。无论是EXCEL的操作,还是VBA的操作,都会对大家有所帮助。知识的讲解过程中,希望大家得到哪怕是一点点的收获,我的时间就是有意义的。
今日给大家讲VBA的循环,这个是非常基础的知识,在VBA的相关内容中我也一直在用,也在不断的讲解。今日专门作为一个专题给大家详细地说明,中间也有一些有意思的小例子,供大家玩耍。
一 FOR NEXT语句 这种循环是以指定的次数来重复执行一组语句
这个结构一般是这样的:
for counter= start to end [ step 步长值]
[statements]
[exit for]
[statements]
Next counter
具体解释一下,初始值指的是循环开始的值,结束值指的是循环结束的值,实质上就是counter值的一个判断,如果counter值在起始值和结束值之间,那么进入循环语句,然后counter值每运行到next语句后,会自动加一个步长值,直至counter值超出了初始值到结束值这个范围,循环才会结束。这里要说明一下,"step 步长值"往往是省略掉的,省略掉的话,步长取默认值为1。下面将以一段小实例来具体说明这个结构的用法。
实例:在sheet1工作表中一次输出1到100这些数,显示在第一列中。
程序:
Sub kk()
Sheets("sheet1").select
Dim i As Integer
For i = 1 To 100
Cells(i, 1) = i
Next
End Sub
二 for each …NEXT语句 这种循环主要功能是对一个数组或一个对象进行操作,让所用元素执行一次循环语句
For each element in group
[statements]
[exit for]
[statements]
Nexr element
具体解释一下,在for next循环中主要是数值变量,而for each …NEXT这种结构是对象变量。什么意思呢?each……in指的是在这个对象集合里面,一次将每一个对象都遍历一边。同样的道理,执行到next后对象自动指到下一个。具体我们来看一下下面的一个实例吧。
实例:给一个数据区域a1:d5内的所有单元格随机赋值。
分析:显然数据区域就是一个对象集合,单元格就是这个集合里面的对象。
程序:
Sub JJ()
Sheets("SHeet1").Select
Dim i As Integer
For Each c In Range("a1:d5")
c.Value = Rnd
Next
End Sub
三DO loop 语句 在条件为true时,重复执行命令区域
DO WHILE CONDITION
[statements]
[exit do]
[statements]
LOOP
或者:
DO
[statements]
[exit do]
[statements]
LOOP WHILE CONDITION
备注:上面的while 可以用until 代替。
VBA中如果事先不知道将重复多少次循环,只是知道判断的条件,那么使用 Do...Loop 语句。Do...Loop 语句重复执行某段代码直到条件是 true 或条件变成 true。重复执行代码直到条件是 true使用 While 关键字来检查 Do... Loop 语句的条件。
举例:我们用Do While语句来解决求1—100的自然数的和的问题:
Sub my_sum()
Dim Lsum As Long, i As Long
i = 1
Do While i <= 100
Lsum = Lsum + i
i = i + 1
Loop
MsgBox "1到100的自然数和为:" & Lsum
End Sub
好了,到这里把三个循环体都做了讲解,上面也讲到了三个实例,截图如下,我都做了测试,可以使用。
今日内容回向:
1 VBA 中三种循环体是什么?
2 三种循环的区别和联系是什么?
3 如果不知将循环多少次?用哪个循环体?
4 试着把第一个例子改成第三个的模式。
本文内容由快快网络小鸣创作整理编辑!