Как скрыть/показать лист с помощью vba?

Вы можете использовать код VBA, чтобы скрыть или отобразить лист в Excel. Щелкнув правой кнопкой мыши вкладку листа, вы увидите возможность скрыть или отобразить ее, и то же самое вы можете сделать с кодом VBA.

В этой статье мы рассмотрим некоторые способы и методы, которые мы можем использовать.

Код VBA, чтобы скрыть лист

Допустим, вы хотите скрыть «Лист1» из активной книги. В этом случае вам следует использовать такой код.

 Sheets("Sheet1").Visible = False

В приведенном выше коде вы ссылались на Sheet1, использовали свойствоvisible и изменяли его на false.

Сделайте лист очень скрытым

Есть еще один вариант, который вы можете использовать, чтобы создать очень скрытый лист, который пользователь не может легко скрыть.

Скрыть лист на основе значения ячейки

Хорошо, если вы хотите использовать значение ячейки вместо прямого использования имени листа в коде, вы можете обратиться к этой ячейке.

 Sheets(Range("A1").Value).Visible = True

Этот код ссылается на ячейку A1 и использует ее значение для ссылки на лист, который вы хотите скрыть.

Полезные ссылки: Запуск макросаСредство записи макросовРедактор Visual BasicПерсональный справочник по макросам

Проверьте лист, прежде чем скрывать его

Вы также можете использовать небольшой код, подобный этому, чтобы проверить лист, выходные данные которого вы хотите скрыть или нет.

 Sub vba_hide_sheet() Dim sht As Worksheet For Each sht In ThisWorkbook.Worksheets If sht.Name = "Sheet1" Then sht.Visible = False Exit Sub End If Next sht MsgBox "Sheet not found", vbCritical, "Error" End Sub

В приведенном выше коде используется FOR EACH LOOP + IF STATEMENT для прохода по каждому листу в книге. И проверьте лист, который хотите скрыть.

Скрыть все листы (кроме ActiveSheet)

Теперь вам нужно понять одну вещь: нельзя спрятать все листья. Все время должен быть виден один лист.

 Sub vba_hide_sheet() Dim ws As Worksheet For Each ws In ThisWorkbook.Sheets If ActiveSheet.Name <> ws.Name Then ws.Visible = False End If Next ws End Sub

Приведенный выше код перебирает все листы книги, затем сопоставляет имя каждого листа с именем активного листа и скрывает его, если оно не совпадает.

Код VBA для отображения листа

Чтобы отобразить лист, необходимо изменить свойствоvisible на TRUE.

 Sheets("Sheet1").Visible = False

Если лист, который вы хотите отобразить, уже виден, этот код не выдаст никаких ошибок. Но если этот лист не существует, вы получите ошибку времени выполнения «9».

VBA-код для отображения листа

Используйте VBA, чтобы показать все скрытые листы

Представьте, что у вас есть несколько скрытых листов в книге, и если вы хотите скрыть их вручную, вам придется делать это один за другим.

Но вот код, который делает это за один раз.

 Sub vba_unhide_sheet() Dim ws As Worksheet For Each ws In ThisWorkbook.Sheets If ws.Visible = False Then ws.Visible = True End If Next ws End Sub

Он просматривает каждый лист и разоблачает его.