使用VBA快速选中指定的多个工作表

在Excel操作界面中选中工作表标签时保持或者按下,可以选中多个工作表,操作时录制宏,可以得到类似如下的代码。

Sheets(Array("Sheet1", "Sheet2", "Sheet3", "Sheet4")).Select

这样的代码使用起来有时并不方便,例如Excel中的工作表个数较多,名称时常会发生变化等,在VBA开发过程中有更简洁的方法可以实现选中指定的多个工作表。

例如现在需要选中当前工作簿中名称中包含“月”字的全部工作表。

Sub demo()
    Dim bFlag As Boolean
    Dim oSht As Worksheet
    bFlag = True
    For Each oSht In Sheets
        If InStr(oSht.Name, "月") Then
            If bFlag Then
                oSht.Select
                bFlag = False
            Else
                oSht.Select Replace:=False
            End If
        End If
    Next
End Sub

【代码解析】
第4行代码设置标识变量,并赋值为True。
第5~14行代码使用For…Next循环遍历全部工作表。
第6行代码判断工作表名称中是否包含关键字。
第7行代码判断标识变量的值。

  • 如果为True,说明找到了符合要求的第一个工作表,第8行代码选中该工作表,第9行代码更新标识变量的值。
  • 如果为False,第11行代码增加选中oSht工作表,由于指定Select方法的Replace参数为False,那么将保留原已经选中的工作表。

Worksheet对象的Select的微软官方帮助文档如下。

Worksheet.Select 方法 (Excel)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值