Excel - выбор из выпадающего списка в защищенном листе - PullRequest
0 голосов
/ 26 февраля 2019

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

Когда я вручную защищаю лист и выбираю соответствующие параметры, все ячейки блокируются, но пользователь все равно может выбрать из выпадающих списков необходимые ячейки.Однако, когда я блокирую лист с помощью VBA (что необходимо для работы некоторых моих макросов), эта функция исчезает.

Все, что я делаю в VBA, это

'variable declarations

ws1.Unprotect Password:="pw"
ws1.Cells.Locked = False

'lots of code here

ws1.Cells.Locked = True
ws1.Protect Password:="pw", UserInterfaceOnly:=True, _
AllowDeletingColumns:=True, AllowFiltering:=True, AllowFormattingCells:=True,_
AllowFormattingColumns:=True, AllowUsingPivotTables:=True

IВы читали, что AllowFiltering:=True - это то, что должно разрешать выпадающий выбор в заблокированных ячейках, но здесь это не работает.Кто-нибудь знает, в чем разница между блокировкой вручную и блокировкой через vba?

1 Ответ

0 голосов
/ 26 февраля 2019

Вы должны иметь возможность просто указать диапазон ячеек, который вы хотите разрешить пользователю редактировать:

Range("Enter range here").Locked = False

Я не уверен, что не смогу протестировать, однако приведенные ниже действия помогут:

'variable declarations

ws1.Unprotect Password:="pw"
ws1.Cells.Locked = False

'lots of code here

ws1.Cells.Locked = True
Range("Enter range here").Locked = False 

ws1.Protect Password:="pw", UserInterfaceOnly:=True, _
AllowDeletingColumns:=True, AllowFiltering:=True, AllowFormattingCells:=True,_
AllowFormattingColumns:=True, AllowUsingPivotTables:=True
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...