学习VBA,报表做到飞 第一章 入门篇 1.12 FOR EACH语句

学习VBA,报表做到飞 第一章 入门篇 1.12 FOR EACH语句各位在实际应用时 就可以对循环到的对象进行自己想要进行的操作 比如工作簿的更名 保存 备份 拷贝 删除等 工作表的更名 拷贝 删除 移位等 单元格的统计 判断 剪切 拷贝 删除 赋值等 都可以在 FOR EACH 语句里进行操作 往期精彩回顾

大家好,欢迎来到IT知识分享网。

第一章 入门篇

1.12 FOR EACH语句

对于给定初值、末值和步长的循环对象,我们用FOR循环语句。

for 变量名=x to y step n

“循环的内容”

Next

那么,不知道初值、末值和步长的对象集合,我们又想循环该集合里的每一个对象,该怎样进行循环呢?

我们用FOR EACH循环语句,它可以自动遍历给定的对象集合体的所有值。

它的编写格式也与FOR语句相似:

for each 变量名 in 对象集合

循环的内容

Next

FOR EACH语句的循环对象集合通常有:

1、Workbooks工作簿

For Each 变量 In Workbooks

在已经打开的工作簿之间进行循环。

2、Worksheets工作表

For Each 变量 In Worksheets

在当前工作簿的工作表之间进行循环。

3、Range单元格

(1)range(“区域”)

For Each 变量 In Range(“a1:f33”)

按照先横后直的原则,遍历”a1:f33″这个单元格区,也就是从”a1″单元格开始,”b1″、”c1″……一直到”f1″,再从第二行”a2″单元格开始,”b2″、”c2″……一直到”f2″,依次按行进行循环。

(2)Selection 鼠标选定区域

For Each 变量 In Selection

按照先横后直的原则,在鼠标选定的一片区域内逐个单元格进行循环。

(3)CurrentRegion语句返回的区域

For Each 变量 In Range(“a1”).CurrentRegion

按照先横后直的原则,在与基准单元格(本示范语句以a1单元格为基准单元格)相连接的区域内进行循环。

4、数组

For Each 变量 In Arr数组

在数组的每一个元素里进行循环。对于数组的用法,我们会在下一章节具体讲解。

示例:

科目
姓名

语文

数学

英语

美术

体育

A同学

99

64

25

60

79

B同学

81

99

37

98

23

C同学

76

68

96

82

68

D同学

67

89

62

39

54

E同学

82

82

62

65

85

F同学

23

83

77

59

60

在FOR循环语句里用到的这个表格,把上表中不及格的成绩填充为红色。假如我们无法判断该表格数据区域的最右边界和最下边界,我们可以用FOR EACH语句这样写:

先用鼠标选中表中的成绩,然后运行下面的代码:

Sub foreach()

For Each s In Selection

If s.Value < 60 Then

s.Interior.ColorIndex = 3

End If

Next

End Sub

让s变量在Selection单元格集合中遍历,它的值如果小于60,填充色就变为红色。这样写代码是不是更简便了?

或者用我们上节学到的CurrentRegion语句来写:

Sub foreach2()

For Each s In Range(“a1”).CurrentRegion

If s.Value < 60 Then

s.Interior.ColorIndex = 3

End If

Next

End Sub

我们不再手动写代码来判断表格的数据区域边界,而是让系统自动判断数据区域边界,也就不用再理会循环语句的初值、末值和步长,并让s变量遍历该区域内的每一个单元格对象,对每一个循环到的单元格对象进行我们想要的操作,这就是FOR EACH语句的魅力。

下面是FOR EACH语句的常用写法,各位可以自己把代码敲进去,执行一下,看看执行的结果是啥样的?

Sub foreach()

‘在工作簿中循环:

Dim s As Workbook

For Each s In Workbooks

MsgBox s.Name

Next

‘在工作表中循环:

Dim n As Worksheet

For Each n In Worksheets

MsgBox n.Name

Next

‘在单元格中循环:

Dim b As Range

For Each b In Range(“a1”).CurrentRegion

MsgBox b

Next

End Sub

在workbooks中循环时,是在已经打开的工作簿中循环。在worksheets中循环时,是在活动工作簿的工作表集合中循环。

本示范语句只是介绍了FOR EACH语句的基本写法,对循环对象的操作也是蜻蜓点水而已,循环到哪个对象时,就弹出哪个对象的名字或值。各位在实际应用时,就可以对循环到的对象进行自己想要进行的操作,比如工作簿的更名、保存、备份、拷贝、删除等,工作表的更名、拷贝、删除、移位等,单元格的统计、判断、剪切、拷贝、删除、赋值等,都可以在FOR EACH语句里进行操作。至于上面提到的对工作簿、工作表、单元格的各项操作,其实就是这些对象的方法或属性,大家只要敲出”对象.”(在上面这个程序里就是s.、n.、b.),后面需要操作动作对应的代码就在弹出菜单里显示啦,大家动一下你的鼠标,点击左键选择就OK啦!打开你的VB编辑器,试着敲一下代码,对这些对象操作一下吧!

往期精彩回顾:

学习VBA,报表做到飞 第一章 入门篇 1.11 CurrentRegion语句

学习VBA,报表做到飞 第一章 入门篇 1.10 END语句通常用法

学习VBA,报表做到飞 第一章 入门篇 1.9 END语句

我是云飞扬,职场财会人员,愿与大家分享表格制作和数据统计分析的技巧与方法,希望大家的工作更便捷,更轻松!

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/163911.html

(0)
上一篇 2024-12-22 09:00
下一篇 2024-12-22 09:15

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信