宝哥软件园

如何在excel中做vba循环?

编辑:宝哥软件园 来源:互联网 时间:2021-09-13

如何在excel中做vba循环?我们介绍了Excel的对象模型和一些常用的对象,也了解了对象变量的概念和对象变量的声明方法。实际上,在大多数情况下,我们使用Excel VBA来操作Excel对象来实现我们的目标。例如,我们可以操作工作表对象、命名工作表、对工作表进行排序以及计算工作表的数量。我们可以操作单元格对象,用内容填充单元格区域,并找到指定内容的单元格。等等。

为了便于操作Excel对象,VBA提供了一个For Each-Next结构,它可以在由对象组成的集合中循环,并对集合中的所有对象执行操作,或者对集合中满足相关条件的对象执行操作。

使用For Each-Next结构,我们不需要知道集合中对象的数量,只需要声明相应的对象变量并编写指令来执行操作。

“用于每个下一个”结构具有以下语法:

对象中每个对象变量的集合。

[语句块]

[退出时间]

[语句块]

下一个[对象变量]

描述:

按照惯例,方括号中的内容表示选项。

对象需要在使用前声明。

Exit For语句意味着提前退出循环。

您不需要知道集合中对象的数量。

它可以与其他语法结构嵌套。

下面的示例演示了“每个下一个”结构的使用。

示例1:下面的代码遍历当前工作簿中的工作表,并依次显示工作表的名称。

Sub ForEach1()

“将工作表定义为”声明工作表对象变量。

遍历工作表集合,依次显示工作表的名称。

对于工作表中的每一周

MsgBox "工作表的名称是:" wks。名字

下一周

末端接头

示例2:通过对上述示例1的改进,在显示工作表名称时会显示工作表编号,最后统计工作簿中的工作表数量。代码如下。

Sub ForEach2()

“将工作表定义为”声明工作表对象变量。

' Dim I as long '声明了一个用于计算工作表数量的变量。

“I=0”将初始值赋给变量。

对于工作表中的每一周

i=i 1

MsgBox的“I”工作表名称为:“wks”。名字

下一周

此工作簿有“I”个工作表

末端接头

示例3:下面的代码遍历当前工作表的单元格区域A1:A5,并依次显示每个单元格的内容。

Sub ForEach3()

“Dimcell as range”声明了一个单元格对象变量。

遍历单元格区域A1:A5,依次显示单元格内容。

对于范围内的每个单元格(“A1:A5”)

MsgBox单元格。价值

下一个单元格

末端接头

示例4:下面的代码具有与示例3相同的效果,但是我们设置了表示单元格区域的对象变量并赋值,以便For Each结构可以在对象变量表示的区域中循环。

Sub ForEach4()

' Dimcell作为范围,RNG作为范围'声明单元格对象变量。

设置rng变量的值。

设置rng=范围(“A1:A5”)

遍历rng对象变量表示的单元格区域,依次显示单元格内容。

对于网络中的每个小区

MsgBox单元格。价值

下一个单元格

末端接头

示例5:下面的代码结合If-Then结构来判断满足相应条件的单元格数量。

如下图所示,分数在80分以上的学生人数要统计。

运行以下代码。

Sub ForEach5()

' Dimcell作为范围,RNG作为范围'声明单元格对象变量。

“米蒂只要”声明了计数变量。

设置rng变量的值。

设置rng=范围(“B2:B9”)

i=0

遍历由rng对象变量表示的单元格区域。

并判断单元格中的值是否大于80。

对于网络中的每个小区

如果细胞。值80然后

i=i 1

如果…就会结束

下一个单元格

“MsgBox”共有80多分的“我”学生。”

末端接头

在For Each循环结构中,代码使用If-Then语句检查每个单元格中的值。如果该值大于80,变量I将增加1。

更多资讯
游戏推荐
更多+