Возможно ли создать макрос VBA в Excel, который будет скрывать и отображать листы одним нажатием кнопки? - PullRequest
0 голосов
/ 05 ноября 2019

Я довольно начинающий пользователь, когда дело доходит до VBA. Так что приношу свои извинения, если вопрос тривиален.

Я пытаюсь сделать Excel WB для работы, которая содержит информацию на 3 листах.

Лист 2 (называемый Grund) не должен быть виден другим, которые те, кто успешно нажимает кнопку, защищенную паролем (называемую «Admin»). При повторном нажатии кнопки она должна вместо этого скрыть лист. Эта кнопка находится на листе 1 (называемом Hela)

Некоторая информация на листе 1 в определенных столбцах (BC: BI) должна быть скрыта и не скрыта аналогичным образом с помощью кнопки, защищенной паролем.

Я настроил кнопку, чтобы использовать функцию вызова для запуска моих макросов. Мне удалось заставить столбцы скрывать и отображать, как предполагалось (см. Код ниже), но я не могу найти способ написать макрос для скрытия и отображения листа так же, как столбцы.

Как вы увидите в приведенном ниже коде, лист защищен, поэтому я попытался обойти это, и мне нужен макрос для настройки листов таким же образом, как я полагаю. Есть ли простое решение моей проблемы? Пожалуйста, помогите

/ Peter

Я пробовал разные варианты "xlhidden" и ".hidden = not" и разные "if", "ifs" и т. Д. Без какого-либо большого успеха.

ЭТО МАКРО, ЧТОБЫ СКРЫТЬ И РАСПРОСТРАНИТЬ КОЛОННЫ

Sub hideunhidecol()
Dim pwd As String

pwd = "admin"
'
ActiveSheet.Unprotect Password:=pwd 'unprotect the sheet'

   Columns("BC:BI").Hidden = Not Columns("BC:BI").Hidden

With ActiveSheet
    .Protect Password:=pwd, DrawingObjects:=True, Contents:=True, Scenarios:=True _
        , AllowFiltering:=True
    .EnableSelection = xlNoRestrictions
    'protect the sheet'
End With
End Sub

1 Ответ

1 голос
/ 05 ноября 2019

Чтобы переключить видимость данного листа, вы можете использовать:

Worksheets("Grund").Visible = Not Worksheets("Grund").Visible

Но имейте в виду, что, как говорит @Josh Eller, это не обеспечивает никакой реальной защиты

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