Я сделал функцию скрипта Google для обновления определенной страницы для нескольких различных электронных таблиц с идентичными страницами. Таким образом, функция берет имя и положение листа, который нужно изменить (из основной электронной таблицы), а затем перебирает все другие электронные таблицы и заменяет старый указанный лист новым указанным. Моя проблема в том, что некоторые листы должны быть защищены, но при их замене снимается защита.
Я пытался использовать sheet.protect (), но получаю «TypeError: Не удается найти функцию защиты в объекте Spreadsheet». Я не знаю, почему, так как в Google Docs я использую подобный код. Я также пытался использовать getProtections (), но он также не смог найти функцию.
function updatePage(pageName, pagePos) {
var source = SpreadsheetApp.getActiveSpreadsheet();
var sheetToUp = source.getSheetByName(pageName);
for (i=0; i < schools.length; i++) {
//schools[i][1] provides the link to the spreadsheet
if(schools[i][1] != 0) {
sheet = SpreadsheetApp.openById(schools[i][1]);
sheetToUp.copyTo(sheet);
sheet.deleteSheet(sheet.getSheetByName(pageName));
sheet.setActiveSheet(sheet.getSheetByName("Copy of " + pageName));
sheet.renameActiveSheet(pageName);
sheet.setActiveSheet(sheet.getSheetByName(pageName));
sheet.moveActiveSheet(pagePos);
var protection = sheet.protect(); //problem
}
}
}
Он должен вывести новый защищенный лист с именем pageName в позиции pagePos в электронной таблице, связанной в school [i] [1]. Это выводит это, но его незащищенный.