Worksheet / Метод
Worksheet.Protect
Защитить — Защищает ячейки листа с Locked = True.
Protect([Password], [DrawingObjects], [Contents], [Scenarios], [UserInterfaceOnly], ...)
Параметры
| Имя | Тип | Описание | |
|---|---|---|---|
Password |
Variant | необяз. | Пароль защиты листа. |
UserInterfaceOnly |
Variant | необяз. | True — VBA может менять ячейки без снятия защиты. |
Когда использовать
UserInterfaceOnly:=True разрешает VBA писать в защищённые ячейки, пока книга открыта. После переоткрытия защиту нужно наложить снова.
Версии и среда
Excel 2007–365
Минимальный пример
ws.Protect Password:="demo", UserInterfaceOnly:=True, _
AllowSorting:=True, AllowFiltering:=True
Типичный сбой
Макрос ловит 1004 на запись: забыли UserInterfaceOnly или Unprotect.
Рецепты
-
Защитить лист так, чтобы макрос всё ещё писал
После Protect запись из VBA даёт 1004.
Рядом в Worksheet
Unprotect Copy Name Visible UsedRange Cells Range ListObjects