Как заблокировать ячейки при открытии файла? - PullRequest
0 голосов
/ 19 июня 2019

У меня есть некоторые формулы, установленные через vba для изменения значения в столбцах H, J, K, L и N. Эти изменения основаны на значении столбца G и кнопке Submit, это работает отлично.

Когда я делаю процесс, чтобы заблокировать их, чтобы избежать редактирования пользователем, то есть, чтобы разблокировать весь лист, затем заблокировать те, которые мне нужны, после этого я изменяю столбец G и получаю:

«Неудачный метод класса Range Failed».

Я использую его в столбце H.

Это подсвечивается:

Sheet1.Range("H11:H50").Rows.EntireRow.AutoFit

1 Ответ

0 голосов
/ 19 июня 2019

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

Sub Example()

Sheet1.Unprotect "YOURPASSWORD" 'if no password was used, you don't need to include it
Sheet1.Range("H11:H50").Rows.EntireRow.AutoFit
Sheet1.Protect "YOURPASSWORD"

End Sub

Альтернативное решение:

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

One Caveat: если в коде произойдет ошибка, она будет сброшена, и вам нужно закрыть и снова открыть рабочий лист, чтобы это снова заработало

Private Sub Workbook_Open()
    Dim ws As Worksheet
    For Each ws In ThisWorkbook.Worksheets
        ws.Protect UserInterfaceOnly:=True
    Next ws
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...