У меня есть подфункция в проекте, которую я использую для защиты от копирования, поскольку лист дублируется. Это работало в течение нескольких месяцев без проблем. Я неожиданно получаю сообщение об ошибке «Service Error: Spreadsheets» при запуске. Я знаю, что это работало без проблем в воскресенье, и в коде не было никаких изменений. Я знаю, что с помощью серии инструкций Logger ошибка возникает в строке
var p = sheet.getProtections(SpreadsheetApp.ProtectionType.SHEET)[0];
. Я провел некоторое тестирование, и кажется, что большинство команд класса защиты вызывают ошибку. Я выполнил поиск в Google и могу найти только один другой релевантный пост из 15 часов go, где кто-то сталкивается с подобной, но слегка проблемной проблемой. Мне кажется, что это проблема Google. Может ли кто-нибудь подтвердить или дать какое-либо представление о том, как действовать дальше? Вероятно, они работают над чем-то, и это скоро будет исправлено?
function DuplicateProtections(Week) {
//Duplicates the selected Template keeping all the protections
var sheet = ss.getSheetByName(Week);
var sheet2 = sheet.copyTo(ss).setName('Temp');
var p = sheet.getProtections(SpreadsheetApp.ProtectionType.SHEET)[0];
var p2 = sheet2.protect();
p2.setDescription(p.getDescription());
p2.setWarningOnly(p.isWarningOnly());
if (!p.isWarningOnly()) {
p2.removeEditors(p2.getEditors());
p2.addEditors(p.getEditors());
}
var ranges = p.getUnprotectedRanges();
var newRanges = [];
for (var i = 0; i < ranges.length; i++) {
newRanges.push(sheet2.getRange(ranges[i].getA1Notation()));
}
p2.setUnprotectedRanges(newRanges);
}