搜索
写经验 领红包
 > 职场

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 试着把第一个例子改成第三个的模式。

本文内容由快快网络小鸣创作整理编辑!