Я создал скрипт, который запускается при открытии GoogleSheet.Сценарий снимает защиту всего листа, а затем защищает все, кроме строки текущей даты.Сценарий выполняет именно то, что я хочу, но мне пришло в голову, что он слишком громоздок и отнимает много времени.
Вместо защиты целого ряда определенных диапазонов, есть способ защитить весь лист, а затем снять защитутолько несколько диапазонов.Это может показаться намного более эффективным в отношении времени выполнения скрипта.
Моя единственная проблема в том, что когда я пытаюсь снять защиту с определенных диапазонов, код выдает ошибку.
Cannot find method setUnprotectedRanges(Range)
фрагмент кода здесь:
var sheet = SpreadsheetApp.getActiveSheet();
// Remove all range protections in the spreadsheet
var protections = sheet.getProtections(SpreadsheetApp.ProtectionType.RANGE);
for (var i = 0; i < protections.length; i++) {
var protection = protections[i];
protection.remove();
}
var protection = sheet.protect();
//restrict editors to owner
protection.getRange().getA1Notation();
var eds = protection.getEditors();
protection.removeEditors(eds);
//set unprotected ranges
var range1 = sheet.getRange("A2:L2");
protection.setUnprotectedRanges(range1);
var range1 = sheet.getRange("A4:C4");
protection.setUnprotectedRanges(range1);
Любое предложение?
Гари