Блокировка Смежная ячейка, если ячейка содержит определенный текст

Я пытаюсь адаптировать следующий код для блокировки соседних ячеек, когда столбец M содержит «НЕТ»,

Например, если M12 содержит «НЕТ», я хотел бы заблокировать «V12: AG12, AI12: AT12»,

Private Sub Worksheet_Change(ByVal Target As Range) Dim rng1 As Range Dim c As Range Set rng1 = Intersect(Target, Range("M:M")) If rng1 Is Nothing Then Exit Sub ActiveSheet.Unprotect Password:="Password" With Application .ScreenUpdating = False .EnableEvents = False End With For Each c In rng1 Select Case LCase(c.Value) Case Is = "YES" ActiveSheet.Unprotect Password:="Password" Cells(c.Row, 13).Resize(1, 12).Locked = False Range(Cells(c.Row, "V"), Cells(c.Row, "AG")).Locked = False Range(Cells(c.Row, "AI"), Cells(c.Row, "AT")).Locked = False ActiveSheet.Protect Password:="Password" Case Is = "NO" ActiveSheet.Unprotect Password:="Password" Range(Cells(c.Row, "V"), Cells(c.Row, "AG")).Locked = True Range(Cells(c.Row, "AI"), Cells(c.Row, "AT")).Locked = True ActiveSheet.Protect Password:="Password" Case Else ActiveSheet.Unprotect Password:="Password" MsgBox "Please only input YES or NO in this column", vbCritical + vbOKOnly ActiveSheet.Protect Password:="Password" Exit Sub End Select Next c With Application .ScreenUpdating = True .EnableEvents = True End With ActiveSheet.Protect Password:="Password" End Sub 

Однако я смущен тем, где я бы вставил условие «НЕТ» в приведенный выше код, а также как выбрать диапазон для «Блокировать»,

Приложил изображение, чтобы продемонстрировать, чего я пытаюсь достичь. введите описание изображения здесь

благодаря

Это должно делать то, что вы хотите:

 Private Sub Worksheet_Change(ByVal Target As Range) Dim rng1 As Range Dim c As Range Set rng1 = Intersect(Target, Me.Range("M:M")) If rng1 Is Nothing Then Exit Sub With Application .ScreenUpdating = False .EnableEvents = False End With Me.Unprotect Password:="Password" For Each c In rng1 Select Case LCase(c.Value) Case Is = "yes" Me.Cells(c.Row, 13).Resize(1, 12).Locked = False Me.Range(Me.Cells(c.Row, "V"), Me.Cells(c.Row, "AG")).Locked = False Me.Range(Me.Cells(c.Row, "AI"), Me.Cells(c.Row, "AT")).Locked = False Case Is = "no" Me.Range(Me.Cells(c.Row, "V"), Me.Cells(c.Row, "AG")).Locked = True Me.Range(Me.Cells(c.Row, "AI"), Me.Cells(c.Row, "AT")).Locked = True Case Else MsgBox "Please only input YES or NO in this column", vbCritical + vbOKOnly Exit Sub End Select Next c Me.Protect Password:="Password" With Application .ScreenUpdating = True .EnableEvents = True End With End Sub 

Обратите внимание, что я также включил строки, чтобы разблокировать ячейки, которые будут заблокированы «НЕТ», чтобы их можно было разблокировать, если вы измените значение на «ДА»,

  • UDF возвращает то же значение везде
  • Скрытие или отсутствие отображения excel VBA UDF module / code
  • VBA UDF изменяет значения на всех листах. Как ограничиться одним?
  • Необходимо остановить пересчет UDF, когда удаленные ячейки не удалены
  • UDF, чтобы сделать своего рода замену функции массива
  • Получение адреса ячейки, в которую была введена функция
  • Удалять все, кроме чисел из ячейки
  • Что означает «Microsoft Office Excel ожидает, что другое приложение завершит действие OLE»?
  • Почему нельзя хранить мой массив?
  • Зарегистрируйте UDF с описаниями аргументов, используя excel addin
  • Функция VBA UDF заставляет excel «не отвечать»,
  • Interesting Posts

    Получать имена макросов Excel с описаниями

    Импорт данных с другого листа с использованием GetOpenFilename «Метод по умолчанию для параметра« Невозможно удалить объект »

    Сохраните ряд рабочих таблиц Excel в формате PDF

    получение дополнительного html-кода при экспорте данных в excel с использованием php-проблемы

    Excel VBA – Вычислить и вернуть индексную функцию #VALUE! ошибка

    Поиск «Текст» Переменная между датами

    Как показать сверху одну книгу после фильтра в vba

    Исключить формулу пустой строки

    Как заполнить конкретную ячейку в столбце с использованием условного форматирования

    Размеры Видимый в браузере SSAS Cube, но не в Excel

    PowerBI – источник данных Excel содержит JSON в столбце

    Как удалить целую строку, если дубликаты с учетом регистра найдены в Excel (для записей 100 тыс. Или более)?

    Пересечение столбцов Excel в отношении третьего столбца

    Excel VBA скрыть / показать скорость строки кода

    Excel VBA – Как использовать событие изменения для выполнения макросов?

    Давайте будем гением компьютера.