Sub HideWorksheets()
Dim ws As Worksheet
Dim keepSheets As Variant
Dim sheetName As String
' 定义要保留的工作表名称(以数组形式)
keepSheets = Array("Sheet1", "Sheet2") ' 在这里添加要保留的工作表
' 遍历所有工作表
For Each ws In ThisWorkbook.Sheets
sheetName = ws.Name
' 检查工作表名称是否在要保留的列表中
If IsInArray(sheetName, keepSheets) Then
' 如果在列表中,不隐藏工作表
ws.Visible = xlSheetVisible
Else
' 如果不在列表中,隐藏工作表
ws.Visible = xlSheetHidden
End If
Next ws
End Sub
Function IsInArray(stringToBeFound As String, arr As Variant) As Boolean
' 检查字符串是否在数组中
Dim element As Variant
On Error Resume Next
element = Application.WorksheetFunction.Match(stringToBeFound, arr, 0)
On Error GoTo 0
IsInArray = (Not IsEmpty(element))
End Function