Как разблокировать пустые ячейки в книге с VBA на открытом - PullRequest
1 голос
/ 23 мая 2019

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

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

Я нашел код, который заблокирует все ячейки, установит все пустые ячейки как разблокированные и защитит отдельную таблицу, но у меня возникают проблемы с ее применениемвсю мою рабочую книгу.

Private Sub Workbook_Open()

    Dim myCell As Range

    Set myCell = Selection
    Cells.Select
    Selection.Locked = True
    myCell.Select
    Selection.SpecialCells(xlCellTypeBlanks).Select
    Selection.Locked = False

    ActiveSheet.Protect DrawingObjects:=True, _
      Contents:=True, Scenarios:=True
    myCell.Select

End Sub

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

1 Ответ

0 голосов
/ 23 мая 2019

В этом случае пароль для каждого листа: секрет :

Sub Tony()
    Dim s As Worksheet

    For Each s In Sheets
        s.Unprotect ("secret")
            s.Cells.Locked = False
            On Error Resume Next
                s.Cells.SpecialCells(xlCellTypeConstants).Locked = True
                s.Cells.SpecialCells(xlCellTypeFormulas).Locked = True
            On Error GoTo 0
        s.Protect ("secret")
    Next s

End Sub

Примечание:

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

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