Как защитить ячейки на основе даты в Excel?
Обычно мы можем защитить лист, чтобы предотвратить редактирование или изменение значений ячеек другими пользователями. Однако иногда вам может понадобиться защитить ячейки на основе даты. Например, я хочу защитить все остальные ячейки, но разрешить изменять значения ячеек только для сегодняшней даты, как показано на следующем скриншоте. В этой статье мы расскажем о том, как защитить ячейки на основе даты.
Защитите все строки, кроме строки с сегодняшней датой, с помощью кода VBA
Защитите все строки с прошедшей датой с помощью кода VBA
Защитите все строки, кроме строки с сегодняшней датой, с помощью кода VBA
Чтобы разрешить изменение только строки, соответствующей сегодняшней дате, следующий код может помочь вам. Пожалуйста, выполните следующие действия:
1. Щелкните правой кнопкой мыши вкладку листа, где вы хотите защитить ячейки на основе даты, и выберите Изменить код из контекстного меню. В открывшемся окне Microsoft Visual Basic for Applications скопируйте и вставьте следующий код в пустой Модуль:
Код VBA: Защитите все строки, кроме строки с сегодняшней датой:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Updateby Extendoffice 20161025
If Range("E" & Selection.Row).Value <> Date Then
ActiveSheet.Protect Password:="111111"
MsgBox "Only today's date row can be edited!", vbInformation, "Kutools for Excel"
ElseIf Range("E" & Selection.Row).Value = Date Then
ActiveSheet.Unprotect Password:="111111"
ActiveSheet.EnableSelection = xlNoRestrictions
End If
End Sub
Примечание: В приведенном выше коде буква E — это заголовок столбца, где находится дата, а «111111» — пароль для защиты этого листа. Вы можете изменить их по своему усмотрению.
2. Затем сохраните и закройте это окно кода.
(1.) Если вы щелкнете другие ячейки за пределами строки с сегодняшней датой, появится всплывающее окно с напоминанием о том, что ячейка не может быть отредактирована, см. скриншот:
(2.) Если вы щелкнете и отредактируете строку, равную сегодняшней дате, она будет успешно изменена, см. скриншот:

Раскройте магию Excel с Kutools AI
- Умное выполнение: Выполняйте операции с ячейками, анализируйте данные и создавайте диаграммы — всё это посредством простых команд.
- Пользовательские формулы: Создавайте индивидуальные формулы для оптимизации ваших рабочих процессов.
- Кодирование VBA: Пишите и внедряйте код VBA без особых усилий.
- Интерпретация формул: Легко разбирайтесь в сложных формулах.
- Перевод текста: Преодолейте языковые барьеры в ваших таблицах.
Защитите все строки с прошедшей датой с помощью кода VBA
Если вам нужно защитить все строки с прошедшей датой и разрешить изменение только сегодняшних и будущих дат, примените следующий код VBA:
1. Щелкните правой кнопкой мыши вкладку листа, где вы хотите защитить ячейки на основе даты, и выберите Изменить код из контекстного меню. В открывшемся окне Microsoft Visual Basic for Applications скопируйте и вставьте следующий код в пустой Модуль:
Код VBA: Защитите все строки с прошедшей датой:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
'Updateby Extendoffice 20161025
Dim xRow As Long
xRow = 2
ThisWorkbook.ActiveSheet.Unprotect Password:="111111"
ThisWorkbook.ActiveSheet.Cells.Locked = False
Do Until IsEmpty(Cells(xRow, 5))
If Cells(xRow, 5) < Date Then
Rows(xRow).Locked = True
End If
xRow = xRow + 1
Loop
ThisWorkbook.ActiveSheet.Protect Password:="111111"
End Sub
Примечание: В приведенном выше коде число 5 — это номер столбца, где находится дата, а «111111» — пароль для защиты этого листа. Вы можете изменить их по своему усмотрению.
3. Затем сохраните и закройте это окно кода.
(1.) Если вы щелкнете ячейки с прошедшей датой, появится всплывающее окно с напоминанием о том, что ячейка не может быть отредактирована, см. скриншот:
(2.) Если вы щелкнете ячейку строки, чтобы попытаться изменить значения в сегодняшней или будущей дате, они будут успешно изменены, см. скриншот:
Лучшие инструменты для повышения продуктивности работы с Office
Ускорьте работу в Excel с Kutools для Excel и ощутите новую степень эффективности. Kutools для Excel предлагает более300 расширенных функций для повышения продуктивности и экономии времени. Нажмите здесь, чтобы выбрать нужную вам функцию...
Office Tab добавляет вкладки в Office и делает вашу работу намного проще
- Включите редактирование и чтение с вкладками в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
- Открывайте и создавайте несколько документов во вкладках одного окна, а не в отдельных окнах.
- Увеличьте свою продуктивность на50% и сократите сотни лишних кликов мышью каждый день!