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