在日常工作中,工作簿文件中的工作表经常需要隐藏,如果需要隐藏多个工作表,手工操作就比较麻烦,下面看几个常用的场景。
- 隐藏指定名称的工作表
Sub HiddenShtByName()
Dim objSheet, strShtName
For Each strShtName In Array("Sheet1", "Sheet2")
Sheets(strShtName).Visible = False
Next
Set objSheet = Nothing
End Sub
【代码解析】
第3~5行For Each循环读取数组中的工作表名称。
第4行代码设置工作表的Visible
属性为False,隐藏工作表。如果设置属性值为xlSheetVeryHidden
,则在Excel界面中无法取消该工作表的隐藏状态。
- 隐藏非活动工作表
Sub HiddenSht()
Dim objSheet
For Each objSheet In Sheets
If objSheet.Name <> ActiveSheet.Name Then objSheet.Visible = False
Next
Set objSheet = Nothing
End Sub
【代码解析】
第3~5行For Each循环遍历工作表对象集合。
第4行代码判断工作表的名称是否与当前活动工作表相同,如果不同,则设置工作表的Visible
属性为False,隐藏工作表。
- 显示全部工作表
Sub UnHiddenSht()
Dim objSheet
For Each objSheet In Sheets
objSheet.Visible = True
Next
Set objSheet = Nothing
End Sub
【代码解析】
第3~5行For Each循环遍历工作表对象集合。
第4行代码取消隐藏工作表,这里使用的取巧的方式,无论工作表是否被隐藏,都重新设置其Visible
属性为True。