Я могу заблокировать все ячейки на моем листе и разблокировать их для редактирования, дважды щелкнув и введя пароль.
Моя единственная проблема - код вообще не работает для ячеек проверки данных.Нет никакого способа, которым я могу дважды щелкнуть и отредактировать значения проверки данных.
Также есть способ, которым я могу иметь пустые ячейки, автоматически незащищенные и защищенные после ввода значения, а затем дважды щелкнуть, чтобы запросить пароль, чтобы разблокировать ячейку точно так же, как код, который я использую.
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
Код работает на всех других ячейках, но я надеялся, что пустые ячейки будут редактируемыми, а этот код не работает на ячейках проверки данных.