Скрытие листа Excel с VBA - PullRequest
32 голосов
/ 12 мая 2009

У меня есть таблица Excel с тремя листами. Один из листов содержит формулы для одного из других листов.

Есть ли программный способ скрыть лист, содержащий эти формулы?

Ответы [ 4 ]

59 голосов
/ 12 мая 2009

Чтобы скрыть от пользовательского интерфейса, используйте Формат> Лист> Скрыть

Чтобы скрыть программно, используйте свойство Visible объекта Worksheet. Если вы делаете это программно, вы можете установить лист как «очень скрытый», что означает, что его нельзя скрыть через пользовательский интерфейс.

ActiveWorkbook.Sheets("Name").Visible = xlSheetVeryHidden 
' or xlSheetHidden or xlSheetVisible

Вы также можете установить свойство Visible на панели свойств для рабочего листа в среде VBA ( ALT + F11 ).

20 голосов
/ 12 мая 2009

Вы можете сделать это программно с помощью макроса VBA. Вы можете сделать лист скрытым или очень скрытым :

Sub HideSheet()

    Dim sheet As Worksheet

    Set sheet = ActiveSheet

    ' this hides the sheet but users will be able 
    ' to unhide it using the Excel UI
    sheet.Visible = xlSheetHidden

    ' this hides the sheet so that it can only be made visible using VBA
    sheet.Visible = xlSheetVeryHidden

End Sub
18 голосов
/ 23 апреля 2013

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

sheet.Visible = False

спрятать и

sheet.Visible = True

чтобы показать.

Источник

6 голосов
/ 20 мая 2009

Это можно сделать в одну строку, если рабочий лист активен:

ActiveSheet.Visible = xlSheetHidden

Однако вы, возможно, не захотите этого делать, особенно если вы используете какие-либо операции «выбор» или другие операции ActiveSheet.

...