Скрытие рабочих листов и защита ячеек в Excel 2010

Я собрал форму для сбора данных, которая распределена по пяти листам. Есть ли способ сделать эти листы невидимыми, чтобы пользователи вынуждены перемещаться с помощью кнопок листов, а также редактировать только определенные ячейки?

Если я хочу включить функцию для разблокировки всего, просто нажав, например, Ctrl + D, мне нужно написать макрос или это можно сделать другим способом?

1 ответ

Решение

Да, можно скрыть таблицы и в то же время убедиться, что они не отображаются на вкладках листов

Давайте возьмем пример

Создайте лист с именем DASHBOARD, Это лист, с которого вы будете звонить на остальные листы. Допустим, есть еще 3 листа Magda1, Magda2 а также Magda3

На ваше DASHBOARD лист создать 3 кнопки. Давайте назовем их Open Magda1, Open Magda2 а также Open Magda3 Смотрите скриншот.

введите описание здесь

Следующий двойной щелчок Open Magda1 и вставьте этот код

Option Explicit

Private Sub CommandButton1_Click()
    Dim ws As Worksheet

    Sheets("Magda1").Visible = True

    For Each ws In ThisWorkbook.Sheets
        If ws.Name <> "Magda1" Then ws.Visible = xlSheetHidden
    Next
End Sub

Точно так же у вас будут коды для двух других кнопок

Private Sub CommandButton2_Click()
    Dim ws As Worksheet

    Sheets("Magda2").Visible = True

    For Each ws In ThisWorkbook.Sheets
        If ws.Name <> "Magda2" Then ws.Visible = xlSheetHidden
    Next
End Sub

Private Sub CommandButton3_Click()
    Dim ws As Worksheet

    Sheets("Magda3").Visible = True

    For Each ws In ThisWorkbook.Sheets
        If ws.Name <> "Magda3" Then ws.Visible = xlSheetHidden
    Next
End Sub

Далее перейдите к Magda1 лист и поместите кнопку в левом верхнем углу (или по вашему выбору). Назови это BACK Эта кнопка вернет нас к DASHBOARD, Посмотреть скриншот

введите описание здесь

Вставьте этот код в событие нажатия кнопки

Option Explicit

Private Sub CommandButton1_Click()
    Dim ws As Worksheet

    Sheets("DASHBOARD").Visible = True

    For Each ws In ThisWorkbook.Sheets
        If ws.Name <> "DASHBOARD" Then ws.Visible = xlSheetHidden
    Next
End Sub

Аналогично место BACK нажмите на двух других листах и ​​добавьте приведенный выше код.

Одна последняя вещь. Нажмите на File вкладку, а затем нажмите на Options, Далее нажмите на Advanced вкладка в Excel Option диалоговое окно и снимите флажок, который говорит Show Sheet Tabs

введите описание здесь

Наконец выйти из Design Mode и все готово:)

введите описание здесь

Другие вопросы по тегам