Excel VBA之for each循环

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

这里简单介绍一下for each,看一下和for有什么不一样的地方。

1. 打开Visual Basic,添加一个新模块和过程。

Sub 测试()
End Sub
2. 如果要在当前工作表中A1到A10单元格都输入同一个数字,用for循环如下图。

Sub 测试()
Dim i As Integer
For i = 1 To 10
Range("A" & i) = 1
Next
End Sub
3. 要达到以上的效果,但是用for each则如下。

Sub 测试1()
Dim rng As Range
For Each rng In Range("A1:A10")
rng = 1
Next
End Sub
4. 关于以上代码:
•rng为变量,这里的意思即为单元格,相当于Range("A1")等等;
•for each中rng变量是在A1到A10的范围内循环;
•在定义的时候(Dim rng as Range)也是将rng定义为Range区域或范围;
•rng=1即是给单元格赋值为1。

5. 如果要使A1到A10的数据依次递增,在for循环中可以利用变量i,如图所示。

Sub 测试()
Dim i As Integer
For i = 1 To 10
Range("A" & i) = i
Next
End Sub
6. 那么在for each中,通过上面的方法无法实现,则需要再定义一个变量i。

Sub 测试1()
Dim rng As Range
Dim i As Integer
For Each rng In Range("A1:A10")
i = i + 1
rng = i
Next
End Sub
7. 关于以上的代码:
•新定义一个变量i;
•在for each循环中添加i=i+1,因i初始为整数0,所以第一次循环得到i+1,即0+1等于1;
•执行到rng=i,即可得到rng=1,后面依次循环递增。

相关文档
最新文档