Макрос VBA в Excel для скрытия всех не выбранных листов
Я использовал следующий код макроса VBA ниже, чтобы скрыть все, кроме активного листа:
Sub HideWorksheets()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
If ws.Name <> ThisWorkbook.ActiveSheet.Name Then
ws.Visible = xlSheetHidden
End If
Next ws
End Sub
Есть ли варианты расширить его, чтобы он скрывал все, кроме выбранных листов?
1 ответ
Решение
Вам необходимо получить доступ к Windows (#). SelectedSheets. Один из способов - скрыть все, кроме ActiveSheet, а затем показать все выбранные.
Option Explicit
Sub HideWorksheets()
Dim ws As Worksheet
Application.ScreenUpdating = False
' Hide all except activeone
For Each ws In ThisWorkbook.Worksheets
If ws.Name <> ThisWorkbook.ActiveSheet.Name Then ws.Visible = xlSheetHidden
Next
' Unhide selected worksheets
For Each ws In ThisWorkbook.Windows(1).SelectedSheets
ws.Visible = xlSheetVisible
Next ws
Application.ScreenUpdating = True
End Sub