Ответ:
Вы можете заблокировать диапазоны таблицы Google от редактирования с помощью метода Range.protect ().
Пример кода:
Вам необходимо создать диапазон защиты с помощью метода Range.protect()
, который определяет необходимый диапазон. Согласно примеру скрипта приложения:
function doProtections() {
var ss = SpreadsheetApp.getActive();
var range = ss.getRange('A1:Z1'); // Example of protecting Row 1
var protection = range.protect().setDescription('Protected range name');
var me = Session.getEffectiveUser();
protection.addEditor(me);
protection.removeEditors(protection.getEditors());
if (protection.canDomainEdit()) {
protection.setDomainEdit(false);
}
}
Затем вы можете создать устанавливаемый триггер , который запускается каждый день, сравнивая текущую дату с датой в нужной ячейке:
function runEachDay() {
var today = new Date()
var dateToCheckAgainst = new Date(SpreadsheetApp.getActiveSpreadsheet().getSheets()[0].getRange('A1').getValue())
if (today.getTime() - dateToCheckAgainst.getTime() > 345600000) {
doProtections();
}
}
Примечание: Сравнение с 345600000
является временем Unix - 345600000 мс равняется 4 дням, поэтому, если прошло более 4 дней с даты в ячейке, которую вы проверяете (в моемпример функции A1), затем код будет запущен.
Ссылки: