Немногие клетки не защищены должным образом, почему? - PullRequest
1 голос
/ 21 июня 2019

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

Знаете ли вы, почему я могу редактировать ячейки после метода worksheet.protect?

With ThisWorkbook.Worksheets("Post")
.Range("E147:F148") = (Environ$("Username"))
End With

UniquePassword = GenerateUniqueSequence(5)

'==== Password Protect ========
For Each ws In ThisWorkbook.Worksheets

ws.Protect Password:=UniquePassword

If ws.Name = "Post" Then
GoTo Finish
End If

ws.Visible = False


Finish:
Next ws

Ответы [ 3 ]

1 голос
/ 21 июня 2019

Попробуйте:

With ThisWorkbook.Worksheets("Post")
    .Range("E147:F148") = (Environ$("Username"))
End With

UniquePassword = GenerateUniqueSequence(5)

'==== Защита паролем ========

For Each ws In ThisWorkbook.Worksheets


    ws.Protect Password:=UniquePassword

    If Not ws.Name = "Post" Then


        ws.Visible = False

    End If

Next ws

Если это не сработает, я бы посоветовал вам изменить выделение всех ячеек Post Sheet и повторно выбрать свойство Locked, просто чтобы быть уверенным.

1 голос
/ 21 июня 2019

Хорошо, я обнаружил, что вызывало проблему, какой-то предыдущий разработчик добавил несколько ячеек в AllowEditRnage - его можно найти в разделе «Просмотр» ленты - Разрешить пользователям редактировать диапазон.

Удаленные ячейки оттуда решили проблему

Спасибо всем

0 голосов
/ 21 июня 2019
For Each ws In ThisWorkbook.Worksheets
    If ws.Name<>"Post" Then
       ws.Protect Password:=UniquePassword
       ws.Visible = False
    End If
Next
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...