当前位置:首页 > 办公 > Excel教程 > 正文内容

在对象中循环——For Each-Next结构的使用

酷网1周前 (10-08)Excel教程14

前面我们介绍过Excel的对象模型及一些常用的对象,也解过对象变量的概念及声明对象变量的方法。其实,在绝大多数情况下,我们都是通过使用Excel VBA操纵Excel对象来达到我们的目的。例如,我们可以操作工作表对象,为工作表命名、排序工作表、统计工作表个数;我们可以操作单元格对象,在单元格区域中填充内容、查找有指定内容的单元格;等等。

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

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

For Each-Next结构的语法如下:

For Each 对象变量In 对象集合

[语句块]

[Exit For]

[语句块]

Next [对象变量]

说明:

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

对象变量在使用前需要进行声明。

Exit For语句表示提前退出循环。

无需知道集合中的对象数目。

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

下面通过示例来演示For Each-Next结构的使用。

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

Sub ForEach1()

Dim wks As Worksheet ‘声明工作表对象变量

‘遍历工作表集合并依次显示工作表的名字

For Each wks In Worksheets

MsgBox “工作表的名字是:”& wks.Name

Next wks

End Sub

示例2:通过改进上面的示例1,在显示工作表名字时表明是第几个工作表,最后统计出工作簿中的工作表数,代码如下。

Sub ForEach2()

Dim wks As Worksheet ‘声明工作表对象变量

Dim i As Long ‘声明用于统计工作表数的变量

i = 0 ‘给变量赋初始值

For Each wks In Worksheets

i = i + 1

MsgBox “第” &i & “个工作表的名字是:” & wks.Name

Next wks

MsgBox “本工作簿共有” & i& “个工作表.”

End Sub

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

Sub ForEach3()

Dim cell As Range ‘声明单元格对象变量

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

For Each cell In Range(“A1:A5”)

MsgBox cell.Value

Next cell

End Sub

示例4:下面的代码与示例3的效果相同,但我们设置了代表单元格区域的对象变量并赋值,让For Each结构在对象变量代表的区域内循环遍历。

Sub ForEach4()

Dim cell As Range, rng As Range ‘声明单元格对象变量

‘设置rng变量的值

Set rng = Range(“A1:A5”)

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

For Each cell In rng

MsgBox cell.Value

Next cell

End Sub

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

如下图所示,要统计成绩大于80分的学生人数。

运行下面的代码即可。

Sub ForEach5()

Dim cell As Range, rng As Range ‘声明单元格对象变量

Dim i As Long ‘声明计数变量

‘设置rng变量的值

Set rng = Range(“B2:B9”)

i = 0

‘遍历rng对象变量代表的单元格区域

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

For Each cell In rng

If cell.Value > 80 Then

i = i + 1

End If

Next cell

MsgBox “共有” & i& “名学生超过80分.”

End Sub

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

扫描二维码推送至手机访问。

版权声明:本文章来源于互联网,由八酷网收集发布,如需转载请注明出处。

本文链接:https://www.i8ku.com/2021/39501.html

分享给朋友:

相关文章

Excel页眉页脚添加路径的方法

Excel页眉页脚添加路径的方法

  Excel页眉页脚怎么添加路径?很多文件早被打印出来的目的都是为了快速了解某个数据情况,但因为打印出来的成品少有加入小标题的文件,就会造成某文件与某文件混淆之下,很难分辨,想要明确...

获取Excel单元格中字符串的最后一个单词

获取Excel单元格中字符串的最后一个单词

使用公式来获取字符串的最后一个单词。如下图所示,提取列A单元格中字符串的最后一个单词,将其放置到列C相应的单元格中。 先不看下面的内容,自已试一试。 公式思路 首先查找字符串中空格最后一次出现的位置,然后从该位置起提取...

Excel表格的25招必学秘技 电子表格常用技巧大全

Excel表格的25招必学秘技 电子表格常用技巧大全

  Excel表格的25招必学秘技在网络上流传甚广,其堪称Excel“圣经”的操作技巧,让不少用户意识到Excel的强大之处,笔者也仔细阅读了一下全文,并且将函...

N多商品,excel图表计算相同商品对应数据的最大与最小值

N多商品,excel图表计算相同商品对应数据的最大与最小值

朋友传给我一张EXCEL表格,里面有各个城市的销售数据,城市一列有很多行城市名是相同的。朋友要计算同一城市销售量的最大值和最小值。 换了相似的数据,计算相同商品的最大和最小出货量: 视频解 关键操作计算最大出货量 F...

excel表格中怎么写身份证号格式?excel表格中写身份证号格式的方法

excel表格中怎么写身份证号格式?excel表格中写身份证号格式的方法

  excel表格是我们在工作中经常使用的办公软件之一,不过你们知道在excel表格中怎么写身份证号格式?接下来我们就一起往下看看excel表格中写身份证号格式的方法吧。   ...

excel表格怎么放大打印?

excel表格怎么放大打印?

  相信有时候大家有时候会遇到excel表格需要放大打印时不知道怎么去做,下面小编来介绍一个excel表格设置放大打印的方法,有兴趣的朋友一起来看一看吧。   1、点击文件&m...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。