этот проект, безусловно, проверяет мои ограничения в VBA.У меня есть еще один вопрос.В этой книге у меня есть кнопка «Добавить проекты», которая берет другой лист «Шаблоны проектов» и использует его для создания нового листа под названием «Добавить проекты».Я пытаюсь добавить определенную блокировку ячейки при создании этого листа.Идея состоит в том, что пользователи могут изменять определенные области, но не те, которые имеют формулы или автоматически заполняются записью в другой ячейке.
Проблема заключается в том, что при добавлении кода некоторые блокируются соответствующим образом,одна конкретная ячейка выполняет всплывающее окно с запросом пароля (когда он должен быть заблокирован, как и другие), а некоторые позволяют вам редактировать их, несмотря на то, что они включены в заблокированный код.
Я проверил ячейкуформат, и поле для заблокированного выбран.Я также пошел в Разрешить пользователям редактировать диапазоны и удалил все оттуда (хотя этих диапазонов там не было).Я переместил порядок диапазонов вокруг, думая, что, может быть, они каким-то образом перезаписывают друг друга, хотя у меня есть отдельная ячейка, установленная в качестве конечного диапазона.
Public Sub Open_AddProjectSheet()
Application.ScreenUpdating = False
ActiveWorkbook.Unprotect Password:="Password"
Worksheets("ProjTemplate").Visible = True
If WorksheetExists("AddProject") = False Then
GetTSResourceInfo
GetTSProjectID
ActiveWorkbook.Unprotect Password:="Password"
Worksheets("ProjTemplate").Copy After:=Worksheets("ProjTemplate")
ActiveSheet.Name = "AddProject"
Worksheets("ProjTemplate").Visible = xlSheetVeryHidden
Sheets("AddProject").Activate
ActiveSheet.Unprotect Password:="Password"
ActiveSheet.Cells.Locked = False
ActiveSheet.Range("E5,C6,L2,L6").Locked = True
ActiveSheet.Range("E11:E190").Locked = True
ActiveSheet.Range("G11:H190").Locked = True
ActiveSheet.Range("K2:K6").Locked = True
ActiveSheet.Range("L11:R190").Locked = True
ActiveSheet.Range("L3:L5").Locked = False
ActiveSheet.Protect Password:="Password",UserInterFaceOnly:=True,Contents:=True
Else
answer = MsgBox("'AddProject' sheet already active. Would you like to pick up where you left? WARNING: Selecting 'No' will close the existing sheet and open a new one, any progress will not be saved.", vbYesNo)
If answer = 6 Then
Worksheets("AddProject").Activate
Else
*Same code as above*
End If
End If
Worksheets("ProjTemplate").Visible = xlSheetVeryHidden
ActiveWorkbook.Protect Password:="Password"
Application.ScreenUpdating = True
End Sub
При запуске этого кода E5, C6,K2-K6, L2, L11-R190 все заблокированы правильно.L6 вызывает всплывающее окно с просьбой ввести пароль для изменения этой ячейки.Все остальные диапазоны, E11-E190, G11-H190, доступны для редактирования, даже если они должны быть заблокированы.
Любые идеи, которые я очень ценю.Спасибо!