![Включение/выключение ячейки в Excel в зависимости от того, в какую ячейку пользователь вводит значение первой](https://rvso.com/image/1601536/%D0%92%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5%2F%D0%B2%D1%8B%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5%20%D1%8F%D1%87%D0%B5%D0%B9%D0%BA%D0%B8%20%D0%B2%20Excel%20%D0%B2%20%D0%B7%D0%B0%D0%B2%D0%B8%D1%81%D0%B8%D0%BC%D0%BE%D1%81%D1%82%D0%B8%20%D0%BE%D1%82%20%D1%82%D0%BE%D0%B3%D0%BE%2C%20%D0%B2%20%D0%BA%D0%B0%D0%BA%D1%83%D1%8E%20%D1%8F%D1%87%D0%B5%D0%B9%D0%BA%D1%83%20%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%20%D0%B2%D0%B2%D0%BE%D0%B4%D0%B8%D1%82%20%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D0%B5%20%D0%BF%D0%B5%D1%80%D0%B2%D0%BE%D0%B9.png)
У меня есть три поля в ячейках A1, A2 и A3 в Excel. Все три поля разблокированы в первом случае.
Если пользователь сначала вводит значение в A3, A1 и A2 должны быть отключены или заблокированы.
Если пользователь вводит значение в поле A1, то поле A2 должно быть обязательным, но поле A3 будет заблокировано или отключено.
Другими словами, пользователь должен заполнить A1 и A2, но не A3, или пользователь должен заполнить A3, но не A1 и A2. Можно ли этого добиться в Excel, используя IF и else?
решение1
Следуй этим шагам:
Метод 1:
- Выберите Ячейки
A1:A2
, или те, которые вы разрешаете редактировать только вам. - Щелкните правой кнопкой мышизатем в всплывающем меню нажмитеФормат ячеек.
- ОтДиалоговое окно «Формат ячеек», ударятьВкладка «Защита»
- Снимите флажок «Заблокировано»., & завершить сХорошо.
- НажмитеВкладка «Обзор»затемЗащитный лист.
- Введите код доступа вДиалоговое окно «Защитить лист»и ударилХорошо.
Примечание.Для A3
, во-первыхСнять защитуЛист и повторите указанные выше шаги.
Метод 2:
Sub LockCells()
Dim mainworkBook As Workbook
Set mainworkBook = ActiveWorkbook
mainworkBook.Sheets("Sheet1").Range("A1:A2").Value = "Lock"
mainworkBook.Sheets("Sheet1").Range("A1:A2").Locked = True
mainworkBook.Sheets("Sheet1").Range("A3").Locked = False
ActiveSheet.Protect
End Sub
Sub Unlockcells()
Dim mainworkBook As Workbook
Set mainworkBook = ActiveWorkbook
mainworkBook.Sheets("Sheet11").Range("A3").Value = "Free"
mainworkBook.Sheets("Sheet11").Range("A1:A2").Locked = False
mainworkBook.Sheets("Sheet11").Range("A3").Locked = True
ActiveSheet.Protect
End Sub
Примечание.
- НажиматьАльт+Ф11чтобы открыть редактор VB, затемКопировать вставитьэти коды как стандартный модуль.
- Снять защитуЛист перед запуском любого из макросов.
Теперь изменения разрешены только для разблокированных ячеек.