VBA中的For Each...Next语句处理集合或数组

论坛 期权论坛 期权     
Excel公式与技巧   2019-7-13 18:18   2371   0
点击上面"Excel公式与技巧"蓝字关注公众号

点击文章底部左下角"阅读原文"即可学习视频
学习建议【看千遍不如操作练习一遍】
微信号【duanzhenyun】加微信邀请进交流群


推荐学习120个技巧(包含常用技巧,条件格式,数据透视表及打印技巧),超过6个小时视频讲解,点击文章底部阅读原文即可购买学习。

长按下面二维码;点击上面"识别图中二维码"然后再点关注,可以收到更多Excel教程;或者加入QQ交流群657629885或者加我微信邀请进微信群duanzhenyun,让我们一起学习Excel函数公式与技巧应用。



For Each...Next语句语法
  1. For Each element In group
复制代码
  1.     [statements]
复制代码
  1. [Exit For]
复制代码
  1.     [statements]
复制代码
  1. Next [element]
复制代码
For...Each...Next 语句的语法具有以下几个部分:
部分描述element必要参数。用来遍历集合或数组中所有元素的变量。对于集合来说,element 可能是一个 Variant 变量、一个通用对象变量或任何特殊对象变量。对于数组而言,element只能是一个Variant 变量。group必要参数。对象集合或数组的名称(用户定义类型的数组除外)。statements可选参数,针对 group
中的每一项执行的一条或多条语句。
Exit For可选参数,表示中途退出循环,通常配合条件语句使用。

说明
如果集合中至少有一个元素,就会进入For...Each 块执行。一旦进入循环,便先针对 group
中第一个元素执行循环中的所有语句。如果 group 中还有其它的元素,则会针对它们执行循环中的语句,当 group
中的所有元素都执行完了,便会退出循环,然后从Next 语句之后的语句继续执行。
在循环中可以在任何位置放置任意个Exit For 语句,随时退出循环。Exit
For
经常在条件判断之后使用,例如If...Then,并将控制权转移到紧接在Next 之后的语句。
可以将一个For...Each...Next 循环放在另一个之中来组成嵌套式For...Each...Next
循环。但是每个循环的 element 必须是唯一的。
注意 如果省略Next 语句中的 element,就像 element
存在时一样执行。如果Next 语句在它相对应的For 语句之前出现,则会产生错误。
不能在For...Each...Next 语句中使用用户自定义类型数组,因为Variant 不能包含用户自定义类型。

常用的一些对象集合
  1. Workbooks 工作薄集合
复制代码
  1. Worksheets  工作表集合
复制代码
  1. Comments  批注集合
复制代码
  1. Cells  单元格集合
复制代码
  1. Shapes  对象集合
复制代码
栗子1:
循环工作表集合把每张工作表的名字写到A列单元格,代码如下:
  1. Sub 循环工作表集合()
复制代码
  1.     Dim a As Worksheet, b As String
复制代码
  1.     b = 1
复制代码
  1.     For Each a In Worksheets
复制代码
  1.         Range("a" & b) = a.Name
复制代码
  1.         b = b + 1
复制代码
  1.     Next a
复制代码
  1. End Sub
复制代码
动画效果:



栗子2:
在A1:E8区域写入1-40的数字,代码如下
  1. Sub 循环()
复制代码
  1.     Dim a As Integer
复制代码
  1.     For Each b In Range("a1:E8")
复制代码
  1.         a = a + 1
复制代码
  1.         b.Value = a
复制代码
  1. Next
复制代码
  1. End Sub
复制代码
动画效果:



栗子3:
利用For...Next循环制作99乘法表,代码如下:
  1. Sub 九九乘法表()
复制代码
  1.     Dim a, b As Byte
复制代码
  1.     For a = 1 To 9
复制代码
  1.     For b = 1 To a
复制代码
  1.         Cells(a, b) = a & "×" & b & "=" & a * b
复制代码
  1. Next
复制代码
  1. Next
复制代码
  1. End Sub
复制代码
动画效果如下:


或者代码写成这样:
  1. Sub 九九乘法表2()
复制代码
  1.     Dim a, b As Byte
复制代码
  1.     For a = 1 To 9
复制代码
  1.     For b = 1 To a
复制代码
  1.         Cells(a, b) = b & "×" & a & "=" & a * b
复制代码
  1. Next
复制代码
  1. Next
复制代码
  1. End Sub
复制代码
动画效果如下:



更多Excel函数使用及技巧可以打开公众号,点开历史文章,然后在顶部搜索技巧或者函数即可,如不会可点击红色字体跳转连接看操作步骤,如何利用公众号搜索功能查资料
喜欢本文,请点这里
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:45
帖子:9
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP