在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
的微软官方帮助文档如下。