VB的For Each…Next循环

本文介绍如何使用ForEach...Next循环在VBA中高效地遍历并操作Excel工作表集合,通过实例展示了如何检查特定工作表是否存在及批量删除工作表的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

当你的过程需要在一个集合的所有对象或者一个数组的所有元素之间循环时,应该使用For Each…Next循环。该循环不需要计数器变量,VB自己知道应该执行几次循环。我们拿工作表集合作个例子,要删除工作簿里面的工作表,你首先不得不要选择它,再选择“编辑”-“删除工作表”。如果要只留一个工作表在工作簿里面的话,你就不得不使用同样的命令,次数取决于工作表的总数。因为每个工作表都是工作表集合里的一个对象,所以使用ForEach…Next循环来加速删除工作表。

该循环的形式是:

For Each 元素 In 组合
语句1
语句2
语句N
Next [元素]

在上面的语法中,元素一个数组或者集合的所有元素都将被赋予的变量,如果是数组的话,该变量必须为Variant数据类型;如果是集合的话,则必须是个对象数据类型。组合是集合的名称或者数组的名称。

Sub IsSuchSheet()
Dim mySheet As Worksheet
Dim counter As Integer
counter = 0
For Each mySheet In Worksheets
If mySheet.name = "Sheet2" Then
counter =counter + 1
End If
Next mySheet
If counter = 1 Then
MsgBox "This workbook contains Sheet2."
Else
MsgBox "Sheet2 was not found."
End if
End Sub

过程打开一个新工作簿并且选择Sheet2。ForEach…Next循环遍历每个工作表(从所选的Sheet2开始)并且删除它们。当过程结束的时候,该工作簿只剩一个工作表Sheet1了。这里是另外一个检查某个工作表是否存在于一工作簿中.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值