#excel #vba
#преуспеть #vba
Вопрос:
Я могу заблокировать все ячейки на моем листе и разблокировать их для редактирования, дважды щелкнув и введя пароль.
Моя единственная проблема заключается в том, что код вообще не работает для ячеек проверки данных. Я никак не могу дважды щелкнуть и отредактировать значения проверки данных.
Также есть ли способ, которым я могу автоматически снять защиту с пустых ячеек и получить защиту после ввода значения, а затем дважды щелкнуть, чтобы запросить пароль для разблокировки ячейки, точно так же, как код, который я использую.
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel
As Boolean)
If Target.Value <> "" Then
changeInput = MsgBox("Do you want to unlock the sheet?", vbYesNo
vbQuestion, "Unlock sheet")
If changeInput = vbYes Then
Dim pass As String
pass = InputBox("Enter Password")
If pass <> "password" Then
MsgBox ("Wrong password")
Else
ActiveSheet.Unprotect Password:="password"
Target.Locked = False
End If
End If
End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
Dim cel As Range
ActiveSheet.Unprotect Password:="password"
For Each cel In Target
If cel.Value <> "" Then
cel.Locked = True
End If
Next cel
ActiveSheet.Protect Password:="password"
End Sub
Код работает со всеми остальными ячейками, но я надеялся, что пустые ячейки будут доступны для редактирования, и этот код не работает с ячейками проверки данных.
Ответ №1:
Для ячеек проверки данных попробуйте в вашем событии worksheet_change:
ActiveSheet.Protect DrawingObjects:=False, Password:="password"
вместо того , чтобы
ActiveSheet.Protect Password:="password"
один из способов автоматического снятия защиты с пустых ячеек — убедиться, что все пустые ячейки не заблокированы с нуля.
Комментарии:
1. Спасибо вам, так как некоторые из ваших предложений сработали. Но все же я не могу дважды щелкнуть ячейки проверки данных и ввести пароль, прежде чем получить доступ к редактированию.
2. Вы сначала сняли защиту с листа, ((Вкладка Обзор, снять защиту с листа)?
3. Да, все это сработало. Единственная часть — я все еще не могу дважды щелкнуть ячейки проверки данных и отредактировать.