В Google Таблицах нет прямой функции для автоматической защиты диапазонов ячеек, основываясь на значениях, которые меняются со временем (например, на основе текущей даты). Однако есть решение, которое можно реализовать с использованием Google Apps Script. С его помощью вы можете написать сценарий, который будет проверять дату в ячейке A1 и в зависимости от её значения защищать или снимать защиту с указанного диапазона.
Вот пример того, как это можно сделать:
1. Откройте Google Таблицы и выберите "Расширения" -> "Apps Script".
2. В открывшемся редакторе скриптов вставьте следующий код:
```javascript
function protectRange() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var today = new Date();
var todayFormatted = Utilities.formatDate(today, Session.getScriptTimeZone(), 'yyyy-MM-dd');
var startDate = new Date('2025-01-01'); // Задайте начальную дату (E2)
// Получаем дату из ячейки A1
var cellA1 = sheet.getRange('A1').getValue();
if (cellA1 instanceof Date) {
// Удаляем защиту, если она была установлена
var protection = sheet.getRange('E2:A' + sheet.getMaxRows()).getProtections(SpreadsheetApp.ProtectionType.RANGE);
if (protection.length > 0) {
protection[0].remove();
}
// Если текущая дата больше или равна E2 и меньше сегодня,
// защитим диапазон от E2 до A1
if (cellA1 >= startDate && cellA1 <= today) {
var rangeToProtect = sheet.getRange('E2:A' + sheet.getMaxRows());
var newProtection = rangeToProtect.protect().setDescription('Protected by script');
newProtection.removeEditors(newProtection.getEditors());
}
}
}
```
3. Сохраните код и дайте ему имя.
4. Затем настройте триггер, чтобы код выполнялся каждый день:
- В редакторе скриптов выберите "Триггеры" (значок часов), затем "Добавить триггер".
- Выберите функцию `protectRange`, установите триггер на "По расписанию" и выберите "Ежедневно".
Теперь, когда вы запустите этот скрипт (либо вручную, либо через триггер), он будет защищать указанный диапазон в зависимости от даты в ячейке A1 и даты, указанной в E2. С каждым запуском скрипт будет проверять актуальность защиты.