Предполагая, что вы используете Worksheet_Change(ByVal Target As Range)
, я изменил MyRange.Locked = True
на Cells.Locked = True
, чтобы защитить весь ваш рабочий лист.
Ожидаемый результат заключается в том, что всякий раз, когда изменение в J6 или J7 вызывает срабатывание защитыдля всей таблицы.
Set MyRange = Intersect(Range("J6:J7"), Target)
If Not MyRange Is Nothing Then
Sheets("Sheet").Unprotect Password:="123"
Cells.Locked = True
Sheets("Sheet").Protect Password:="123"
End If
Если вы не используете событие Worksheet_Change, тогда я изменил ваше условие, чтобы проверить, имеет ли ячейка значение.
If Len(Range("J6").Text) <> 0 Or Len(Range("J7").Text) <> 0 Then
Sheets("Sheet").Unprotect Password:="123"
Cells.Locked = True
Sheets("Sheet").Protect Password:="123"
End If