KutoolsforOffice — Одно решение — пять мощных инструментов.Меньше усилий — больше результата.

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

Если щелкнуть и отредактировать строку, соответствующую сегодняшней дате, она будет изменена

снимок экрана kutools for excel ai

Раскройте магию Excel с помощью KUTOOLS AI

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

синяя стрелка с правой стороны в пузыре Защита всех строк с прошедшими датами с помощью кода 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

🤖KUTOOLS AI Помощник: Преобразуйте Анализ данных с помощью:Интеллектуального выполнения   |  Генерации кода|  Создания пользовательские формулы  |  Анализа данных и построения диаграмм|  Вызова Расширенные функции
Популярные функции:Поиск, выделение или Отметить дубликаты   |  Удалить пустые строки   |  Объединить столбцы или ячеек без потери данных   |  Округление без использования формул
Супер ПОИСК:VLookup по нескольким критериям  |  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.

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