VBA中的循环代码大全

最近,我在自学VBA,有了之前的Python基础,感觉学起VBA也比较轻松。毕竟VBA和Python一样都是面向对象的编程语言。通过自学,我基本上掌握了VBA的循环方法,以下是我的简单笔记和大家一起分享。

一、循环填充单元格

  1. 通过for循环和Cells()来填充A列1至10行单元格为1, 2, 3...10,代码如下:
Sub 填充单元格()

Dim i As Integer
For i = 1 To 10
    Cells(i,1)= i
Next i
End Sub

2. 通过for循环和Range()来填充数字

Sub 填充单元格2()
Dim i As Integer
For i = 1 To 10
    Range("A" & i)= i
Next i
End Sub

3. 通过遍历cell对象法

通过定义Range对象,然后遍历对象中的元素,此种方法融合了上面二种方法。

Sub 填充单元格3()
Dim col as integer
Set col = Range("A1:A10")
For Each cell In col
    cell.Value = cell.Row()
Next cell
End Sub

4. 利用do while.. loop循环

通过do wile... loop 循环,并设置循环终止条件,进行批量填充。代码如下:

Sub 填充单元格4()
Dim i As Integer
i = 1
Do While i < 11
     Range("A" & i).Value = i
     i = i + 1
Loop
End Sub

5. 循环遍历每一个单元格

我们用currentregion获取不间断的非空单元格,然后赋值给Range对象,再遍历这个对象来取值,代码如下:

Sub test1()
Dim cell As Range
Dim rg As Range
Set rg = ActiveSheet.Range("A1").CurrentRegion
For Each cell In rg
    Debug.Print cell.Value
Next cell
End Sub

6. 数组遍历每一个单元格

定义一个数组arr,把每一个单元格的内容赋值给数组,然后循环遍历打印出来。

Sub 遍历单元格()

Dim arr As Variant
Dim i As Long
Dim j As Long
arr = ActiveSheet.Range("A1").CurrentRegion
For i = 1 To 4
    For j = 1 To 2
        Debug.Print arr(i, j)
   Next j
Next i
End Sub

二、循环遍历工作表

  1. 通过Worksheets.count来获取工作表的总数来进行for循环。 以下代码实现用for循环来把每一个工作表的第一个单元格填充为工作表的表名。
Sub 循环工作表()
Dim i As Integer
For i = 1 To Worksheets.Count '用worksheets.count获取工作表的数量
    Worksheets(i).Range("A1") = Worksheets(i).Name
Next i
End Sub

2. 利用for each ... in 来循环遍历工作表

这种方法的核心是定义工作表对象sht,然后对工作表集合对象进行遍历。

Sub 循环工作表2()
Dim sht As Worksheet
For Each sht In Worksheets
    sht.Range("A1") = sht.Name
Next sht
End Sub

三、循环遍历工作簿

也就是遍历Excel文件,假定所有文件均已经打开。这里提供两种方法:第一种是对象法,代码如下:

Sub 循环工作簿()
For Each wb In Workbooks
    For Each sht In wb.Worksheets
        sht.Range("A1") = wb.Name
    Next sht
Next wb
End Sub

第二种是切片法,实现的功能依然是在每个工作表的A1单元格中填充当前工作表的表名。

Sub 循环工作簿()
Dim i, m As Integer
For i = 1 To Workbooks.Count
    For m = 1 To Worksheets.Count
        Worksheets(m).Range("A1") = Worksheets(m).Nam
    Next m
Next i
End Sub

四、注意事项

  1. for循环是成对的,一定要注意加上next X, 否则程序就会报错。
  2. VBA的循环大概分二种,一种是对象法,一种是切片法,推荐用对象法,不用考虑对象的数量。
  3. 标识单元格可以用Range和Cells两种方法,各有优劣,可以有选择地使用。
  4. 与Python编程不同的是,VBA编程中要提前定义对象类型,因此它的代码执行速度会比Pythong更快。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

PythonFun

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值