excel中怎么做vba循环
发布时间:2023-01-21 05:51:07
excel中怎么做vba循环?前面我们介绍过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。
猜你喜欢
- 写论文的时候,各个章节都需要编号,论文短时,还可以手动搞定,如果论文比较长的话,手动搞定就比较麻烦啦,那么如何实现章节自动编号呢?下面由小编
- 排序与查找不管是在Excel领域,还是其他领域,例如C语言,都有着很高的使用率。学会了这个技能,我们做起事情来更加方便快捷,省去不少时间,效
- PDF格式是一种人们经常使用的格式,和DOC文档格式相比,PDF格式不仅阅读体验更好、实用性也更极高。而DOC格式更适合用于编辑,那么怎么把
- Excel2013中使用“定位”对话框选择特殊单元格的操作方法1、启动Excel 2013并打开需要处理的工作表,在“开始”选项
- Win10回收站清空了能恢复吗?当我们在用电脑办公的时候,桌面文件多了,每隔一段时间通常会清理一次不需要的文件,有时候误删了还有用的文件该怎
- 許多人不會連續使用WPS或Word背景圖片——即不會將圖片添加至文本的每一頁(後學也是最近才摸清楚的),那就由小编为您提供后学的经验,希望能
- 在word中画出斜波浪线方法:通过插入——文本框绘制出一个文本框,在文本框中连续按空格,选中空格,添加波浪式的下划线; &nb
- 很多朋友都还记得第一次启动word时候的office助手吧,那时候都还不知道助手可以干什么,只知道助手可以变样子,好看,好玩,今天我们就来学
- 第一,xlsm文件格式介绍excel中.xlsm文件后缀扩展名是什么文件呢?.xlsm文件是OFFICE2007的格式文件。在EXCEL20
- 对于办公软件的的使用,生活中工作中是不可缺少的,有的时候在操作过程中要使用到宏工具,那么如何去正确的操作呢?今天,小编就教大家如何Excel
- Excel中的列宽具体该如何进行操作才能固定列宽呢?下面是由小编分享的excel表格固定列宽的教程,以供大家阅读和学习。excel表格固定列
- 我们在使用Office软件时,如何在word中输入带方框的打钩或在方框里打钩?怎么操作才能在word中输入打钩或打叉符号?那么下面就由小编给
- 如果图像的最终目标是PowerPoint或Word,请使用PNG文件格式。如果您的图像中有透明区域,则绝对可以使用PNG 。硬盘上所有精巧的
- 快速选择Excel表格中包含数据单元格的方法,以及怎么选择指定单元格所在的行和列,我平时经常会用到这些快捷键操作,今天,小编就教大家在Exc
- 如果在工作表中有大量的行或列,用户确定不再使用,可以将其进行删除。批量删除工作表方法有如下几种,用户可根据实际情况选择适合的一种进行操作。在
- 在使用电脑的时候,打开一些软件就会提示打开电脑上的摄像头,有些用户就觉得很不喜欢这个操作,就问小编能不能解决这个问题。当然是可以的,下面小编
- word如何选择性粘贴嵌入数据呢?如果用户不需要将整个文件粘贴到Word文档中,只需要粘贴原文件中的局部数据,那么可以借助word选择性粘贴
- Win10迅雷下载速度慢如何提速?我们在使用迅雷下载如果碰到一个大型软件,发现下载速度只有几KB几十KB,每次都要等待很长时间。那么,有什么
- Excel中的公式需要进行批量修改,公式具体该如何进行批量修改呢?对于平时不使用公式的朋友可能有点陌生,接下来是小编为大家带来的excel批
- 如何在Word 2016中添加或删除表行?您不仅可以在Word 2016表格的四个侧面中添加行和列,还可以在表格中挤压新的行和列。秘诀是单击