Удаление строк на защищенном листе - PullRequest
0 голосов
/ 11 марта 2019

У меня есть рабочий лист, который защищен;все ячейки заблокированы, кроме тех, которые предназначены для редактирования пользователем.Мне бы хотелось, чтобы пользователь мог удалять строки, поэтому я включил «удаление строк» ​​при защите своего листа.Как и ожидалось, я получаю сообщение об ошибке «Вы пытаетесь удалить строку, содержащую заблокированную ячейку ...» Я понимаю, почему это происходит, поскольку все ячейки за пределами области, которую я ожидаю, пользовательский ввод заблокированы.

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

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

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

Ответы [ 2 ]

2 голосов
/ 11 марта 2019

У вас может быть кнопка, которая вызывает функцию VBA, которая выполняет удаление.И используйте

Protect UserInterfaceOnly:=True

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

0 голосов
/ 11 марта 2019

Обычно это можно сделать с помощью следующего кода:

Public Sub ProtectMySheet()
    Sheet1.Protect UserInterfaceOnly:=True
End Sub

Тем не менее, я обнаружил, что это иногда можно ударить или пропустить. Так что я иногда делаю это

Public Sub EditStuffInProtectedSheet()

    With Sheet1

        .Unprotect MYPASSWORD ' You can store your password in a safe location, or make it a constant (if you're okay with your End Users knowing it)
        ' ***Do Stuff***
        .Protect MYPASSWORD

    End With

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