Перейти к содержимому

Kutools для Office — один пакет. Пять инструментов. Выполняйте больше.

Как защитить ячейки на основе даты в Excel?

Author Xiaoyang Last modified

Обычно мы можем защитить лист, чтобы предотвратить редактирование или изменение значений ячеек другими пользователями. Однако иногда вам может понадобиться защитить ячейки на основе даты. Например, я хочу защитить все остальные ячейки, но разрешить изменять значения ячеек только для сегодняшней даты, как показано на следующем скриншоте. В этой статье мы расскажем о том, как защитить ячейки на основе даты.

protect cells based on date

Защитите все строки, кроме строки с сегодняшней датой, с помощью кода VBA

Защитите все строки с прошедшей датой с помощью кода VBA


arrow blue right bubble Защитите все строки, кроме строки с сегодняшней датой, с помощью кода 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

click View Code and paste the code intot he module

Примечание: В приведенном выше коде буква E — это заголовок столбца, где находится дата, а «111111» — пароль для защиты этого листа. Вы можете изменить их по своему усмотрению.

2. Затем сохраните и закройте это окно кода.

(1.) Если вы щелкнете другие ячейки за пределами строки с сегодняшней датой, появится всплывающее окно с напоминанием о том, что ячейка не может быть отредактирована, см. скриншот:

If click other cells beyond today’s date row, an prompt box will pop out to remind you the cell can’t be edited

(2.) Если вы щелкнете и отредактируете строку, равную сегодняшней дате, она будет успешно изменена, см. скриншот:

If click and edit the row equals today’s date, it will be modified

a screenshot of kutools for excel ai

Раскройте магию Excel с Kutools AI

  • Умное выполнение: Выполняйте операции с ячейками, анализируйте данные и создавайте диаграммы — всё это посредством простых команд.
  • Пользовательские формулы: Создавайте индивидуальные формулы для оптимизации ваших рабочих процессов.
  • Кодирование VBA: Пишите и внедряйте код VBA без особых усилий.
  • Интерпретация формул: Легко разбирайтесь в сложных формулах.
  • Перевод текста: Преодолейте языковые барьеры в ваших таблицах.
Улучшите возможности Excel с помощью инструментов на базе ИИ. Скачать сейчас и испытайте беспрецедентную эффективность!

arrow blue right bubble Защитите все строки с прошедшей датой с помощью кода 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

click View Code and paste the code intot he module

Примечание: В приведенном выше коде число 5 — это номер столбца, где находится дата, а «111111» — пароль для защиты этого листа. Вы можете изменить их по своему усмотрению.

3. Затем сохраните и закройте это окно кода.

(1.) Если вы щелкнете ячейки с прошедшей датой, появится всплывающее окно с напоминанием о том, что ячейка не может быть отредактирована, см. скриншот:

If click the cells date has passed, an prompt box will pop out to remind the cell can’t be edited

(2.) Если вы щелкнете ячейку строки, чтобы попытаться изменить значения в сегодняшней или будущей дате, они будут успешно изменены, см. скриншот:

If click the cell of rows to try to change the values in today’s date or future date, it will be modified

Лучшие инструменты для повышения продуктивности в Office

🤖 Kutools AI Aide: Совершенно новый подход к анализу данных благодаря: Интеллектуальное выполнение |  Генерация кода  |  Создание пользовательских формул |  Анализ данных и построение диаграмм  |  Вызов Kutools Functions
Популярные функции: Поиск, выделение или отметка дубликатов | Удалить пустые строки | Объединить столбцы или адреса без потери данных | Округлить ...
Супер ПОИСК: VLOOKUP по нескольким критериям | VLOOKUP по нескольким значениям | Многолистовой поиск | Распознавание нечетких соответствий ...
Расширенный раскрывающийся список: Быстро создать раскрывающийся список | Зависимый раскрывающийся список | Множественный выбор в раскрывающемся списке ...
Менеджер столбцов: Добавить определённое количество столбцов | Переместить столбцы | Переключить видимость скрытых столбцов | Сравнить диапазоны и столбцы ...
Рекомендуемые функции: Сетка фокусировки | Дизайн листа | Улучшенная строка формулы | Управление книгой и листами | Библиотека автотекста | Выбор даты | Объединить данные | Зашифровать/расшифровать ячейки | Отправить письмо по списку | Супер фильтр | Специальный фильтр (фильтр жирный/курсив/зачеркнутый...) ...
Топ15 наборов инструментов:12 текстовых инструментов (Добавить текст, Удалить определенные символы, ...) |50+ типов диаграмм (Диаграмма Ганта, ...) |40+ полезных формул (Расчет возраста на основе даты рождения, ...) |19 инструментов для вставки (Вставить QR-код, Вставить изображение по пути, ...) |12 инструментов преобразования (Преобразовать в слова, Конвертация валюты, ...) |7 инструментов объединения и разделения (Расширенное объединение строк, Разделить ячейки, ...) | ... и многое другое
Используйте Kutools на предпочитаемом вами языке — поддерживает Английский, Испанский, Немецкий, Французский, Китайский и более40 других языков!

Повысьте свои навыки работы в Excel с помощью Kutools для Excel и ощутите эффективность на новом уровне. Kutools для Excel предлагает более300 расширенных функций для повышения производительности и экономии времени. Нажмите здесь, чтобы выбрать функцию, которая вам нужнее всего...


Office Tab добавляет вкладки в Office и делает вашу работу намного проще

  • Включите режим вкладок для редактирования и чтения в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
  • Открывайте и создавайте несколько документов во вкладках одного окна вместо новых отдельных окон.
  • Увеличьте свою продуктивность на50% и уменьшите количество щелчков мышью на сотни ежедневно!

Все надстройки Kutools. Один установщик

Пакет Kutools for Office включает надстройки для Excel, Word, Outlook и PowerPoint, а также Office Tab Pro — идеально для команд, работающих в разных приложениях Office.

Excel Word Outlook Tabs PowerPoint
  • Комплексный набор — надстройки для Excel, Word, Outlook и PowerPoint плюс Office Tab Pro
  • Один установщик, одна лицензия — настройка занимает считанные минуты (MSI-совместимо)
  • Совместная работа — максимальная эффективность между приложениями Office
  • 30-дневная полнофункциональная пробная версия — без регистрации и кредитной карты
  • Лучшее соотношение цены и качества — экономия по сравнению с покупкой отдельных надстроек