excel VBA 按条件 显示/隐藏工作表

工作表有很多个,大致如下:
1个首页工作表
2若干个系列的工作表数量不定,随时增减,A1,A2,A3...以A开头的工作表,B1,B2,B3....以B开头的工作表
等等,工作表的具体命名没有规律,但是会用ABC等大写字母分类.

现在想要达成如下的操作(并且以后新增或者删除工作表,不会影响工作表)
功能1:显示首页工作表,隐藏其他所有的工作表.
功能2:执行功能1,然后显示所有的A系列工作表
功能3:执行功能1,然后显示所有的B系列工作表.

要实现上述功能的VBA代码改怎么写?
首页工作表的表格名称假定就是;首页工作表

Sub 显示首页()
Dim sht As Worksheet
For Each sht In Worksheets
 If sht.Name <> "首页工作表" Then sht.Visible = False
Next
End Sub
Sub 显示首页及A系列工作表()
Dim sht As Worksheet
For Each sht In Worksheets
 If sht.Name = "首页工作表" Or Left(sht.Name, 1) = "A" Then
   sht.Visible = True
 Else
   sht.Visible = False
End If
Next
End Sub
Sub 显示首页及B系列工作表()
Dim sht As Worksheet
For Each sht In Worksheets
 If sht.Name = "首页工作表" Or Left(sht.Name, 1) = "B" Then
   sht.Visible = True
 Else
   sht.Visible = False
End If
Next
End Sub

温馨提示:内容为网友见解,仅供参考
第1个回答  2015-01-29
Sub 功能1()
Dim i As Integer
For i = 1 To Sheets.Count
If Sheets(i).Name <> "首页工作表" Then Sheets(i).Visible = 0
Next i
End Sub

Sub 功能2()
Dim i As Integer
For i = 1 To Sheets.Count
If Sheets(i).Name = "首页工作表" Or Left(Sheets(i).Name, 1) = "A" Then
Sheets(i).Visible = -1
Else
Sheets(i).Visible = 0
End If
Next i
End Sub

Sub 功能3()
Dim i As Integer
For i = 1 To Sheets.Count
If Sheets(i).Name = "首页工作表" Or Left(Sheets(i).Name, 1) = "B" Then
Sheets(i).Visible = -1
Else
Sheets(i).Visible = 0
End If
Next i
End Sub
相似回答