AppsScript для Google Sheets не блокирует диапазон во всех вкладках
Имеется более 150 различных Гугл таблиц одинакового формата с разным количеством вкладок в каждой таблице (примерно от 3 до 15). Вкладки делятся на 3 типа: Свод, ДДС, ПНЛ. Вкладок ДДС и ПНЛ может быть разное количество, но они имеют одинаковое название во всех 150 таблицах (Например где-то будет только ДДС1, ДДС2, ДДС3, ПНЛ1, ПНЛ 2, ПНЛ3, а где-то количество может быть до 15, типа ПНЛ15). Каждый месяц есть необходимость заходить в каждую таблицу и на каждой вкладке блокировать определенный диапазон ячеек для редактирования (чаще всего это какая-то колонка). Например закончился месяц март, значит колонку марта надо заблокировать для редактирования.
Необходимо создать такой скрипт, чтобы можно было одним нажатием кнопки блокировать определенный диапазон во всех 150 таблицах и во всех вкладках внутри этих таблиц (URL таблиц имеется). Единственное требование, чтобы можно было указывать разные диапазоны для вкладок с наименованием ДДС и с наименованием ПНЛ. Например для ДДС хотим блочить диапазон B1:E99, а для ПНЛ хотим блочить диапазон C1:F99.
Попробовал вот такой скрипт, но почему-то не блочит указанные диапазоны во вкладках.
function myFunction() {
var urls = ["URL1", "URL2"];
var me = Session.getEffectiveUser();
var range;
for (var i = 0; i < urls.length; i++) {
// Protect range G1:J10, then remove all other users from the list of editors.
var ss = SpreadsheetApp.openByUrl(urls[i]);
// Get sheet in Spreadsheet
var sheets = ss.getSheets();
// loop through sheets to check for names
for (var j = 0; j < sheets.length; j++) {
let sheetName = sheets[j].getName();
if (sheetName.match("DDS")) {
range = ss.getRange('A1:B10');
} else if (sheetName.match("PNL")) {
range = ss.getRange('H1:I10');
} else { continue; }
var protection = range.protect().setDescription('Sample protected range');
// Ensure the current user is an editor before removing others. Otherwise, if the
user's edit
// permission comes from a group, the script throws an exception upon removing the
group.
protection.addEditor(me);
protection.removeEditors(protection.getEditors());
if (protection.canDomainEdit()) {
protection.setDomainEdit(false);
}
}
}
}
Буду признателен за помощь. Тк опыта не так много. Спасибо