Excel VBA学习笔记(六):VBA中的循环语句
介绍四种循环语句的语法:
一、For 循环语法: For 变量=数值 to 数值 Step 步值
“需要执行的语句'
Next 变量
Next 后面的”变量名“,经常被省略。Step 步值 ,省略不写的情况下,变量每次循环后,数值增加1;写上Step 2,那么每次循环 变量+2。步值也可以为负数,如Step -1 ,变量在赋值时,先赋值大数值,往小方向变化。
For i = 10 To 2 Step -1 '倒序循环 Set Rng = Cells(i, n) ' i 为行号,从下往上,i 值不断减小 If Rng = Rng.Offset(-1) Then '当前单元格与其上单元格相同就合并单元格 Rng.Offset(-1).Resize(2).Merge End IfNext
二、For Each 循环:For Each 变量 IN 对象集合
“需要执行的语句'
Next 变量
注意这里的变量要是对象变量(变量通过set 语句赋值的),同上面的FOR循环语句不同,FOR之后的变量代表数值,这里的变量代表的是对象。单元格、单元格区域、工作表 这些才是对象。不能写 For each i In [1-10] *** Next 这样的语句。下面For each 示例
// 依据 f2:f23 单元格的内容生成多个工作表,名称就是f2:f23 单元格的内容 For Each rng In [f2:f23] 'rng 单元格对象 Worksheets.Add after:=Sheets(1) '增加一张工作表,放在第1张工作表之后 Sheets(2).Name = rng Next rng '可只写 Next
For 或 For Each 都是限定范围的循环语句,Do ... Loop 循环属于无限定范围的循环语句(无限循环)。为了使循环有意义,需加条件让循环退出,于是就有
三、Do While 条件表达式(表达式的值要为逻辑值,为TRUE才执行循环)
“需要执行的语句'
LOOP
注意,循环体里的语句,必定会对条件产生影响,导致条件能不成立,不然就成死循环了。
四、 Do
“需要执行的语句'
LOOP Until 条件(表达式的值要为逻辑值,为TRUE就会退出循环)
同样要注意避免产生死循环。
While 与 Until 都可写在 DO 的后面或是 Loop 后面,功效是一样的。只是通常写法:While写在Do后,Until 写在 Loop后。
赞 (0)