Мне нужна помощь в блокировке определенного диапазона ячеек на основе выбора значения из списка из другой ячейки.Нужна помощь в блокировке выбранного диапазона ячеек с помощью VBA
Чтобы быть конкретным, я создал список проверки данных для столбцов с N5 по N36, после выбора значения «Exist» из ячейки N5, я хочу заблокировать эту определенную строку от O5 до U5.
i.e «Exist» в N6 блокирует O6 до U6 и так далее.
Аналогичным образом для других рядов до N36.
И если пользователь выбирает «Не существует», я бы хотел, чтобы эти ячейки оставались разблокированными и редактируемыми, аналогичными приведенному выше условию.
Я пробовал макросы с разных форумов, используя самые простые знания об использовании макросов, но большинство из них блокирует весь лист.
код Я попробовал:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("N5:N36")) Is Nothing Then
ActiveSheet.Unprotect
If Target.Value = "Exist" Then
Range("O" & Target.Column & ":U" & Target.Column).Select Selection.Locked = False
Else
Range("O" & Target.Column & ":U" & Target.Column).Select Selection.Locked = True
End If
End If
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub
Я очень ценю вашу быструю помощь.
Спасибо заранее.
вы должны открыть все клетки, которые не в этом диапазоне, а затем защитить лист, я изучу этот код немного;) –
Привет @GoosvandenBekerom, Ниже один из кодов, которые я использовал на самом деле, когда после моего выбора из одной ячейки весь лист становится заблокированным. –
Private Sub Worksheet_Change (ByVal Target As Range) Если не пересекались (Target, Range ("N5: N36")) ничего после этого ActiveSheet.Unprotect Если Target.Value = "Exist" Тогда Range (» O "& Target.Column &": U "& Target.Column) .Выберите Selection.Locked = False Else Диапазон (" O "и Target.Column &": U "и Target.Column) .Выберите Выбор .Locked = True End If End If ActiveSheet.Protect DrawingObjects: = True, Содержимое: = True, Сценарии: = True End Sub –