У меня есть скрипт, который работает. Он предназначен для l oop через несколько различных электронных таблиц и делает одинаковые правки в каждой. Редактирование: добавление 2 формул, условное форматирование ячейки и снятие защиты с 6 листов. Но, похоже, есть проблема с первым 'FOR' l oop. Это только делает 2 итерации, затем продолжает работать. Мне пришлось принудительно остановить каждую из моих попыток через несколько минут. Я довольно новичок, поэтому я думаю, что проблема может быть связана с моим синтаксисом и скобками {}.
var sheetIds = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Blueprints"); //Change as needed -DONE
var values = sheetIds.getRange('j19:j96').getValues(); //Change to proper range -DONE j3:j96
var idList = values.map(function (row) {
return row[0];
}).filter(function (id) {
return id;
});
for (var i = 0; i < idList.length; i++) {
// var form1 = "Roster!A1"
// var form2 = "KPI!A1"
var s = SpreadsheetApp.openById(idList[i]);
var ss = s.getSheetByName('Blueprint');
var roster = ss.getRange('e3');
var kpi = ss.getRange('f3');
var form1 = "Roster!A1"
var form2 = "KPI!A1"
roster.setFormula(form1)
kpi.setFormula(form2)
//var range = ss.getRange('t1')
var rule = SpreadsheetApp.newConditionalFormatRule()
.whenTextContains('Advocates')
.setFontColor('#c9daf8')
.setRanges([roster])
.build();
var rules = ss.getConditionalFormatRules();
rules.push(rule);
ss.setConditionalFormatRules(rules);
//var s = SpreadsheetApp.getActiveSpreadsheet();
var store = s.getSheetByName('Store');
var prot = store.getProtections(SpreadsheetApp.ProtectionType.SHEET)
for (var i = 0; i < prot.length; i++) {
var protection = prot[i];
if (protection.canEdit()) {
protection.remove();
}
}
var adv1 = s.getSheetByName('Advocate1');
var prot1 = adv1.getProtections(SpreadsheetApp.ProtectionType.SHEET)
for (var i = 0; i < prot1.length; i++) {
var protection1 = prot1[i];
if (protection1.canEdit()) {
protection1.remove();
}
}
var adv2 = s.getSheetByName('Advocate2');
var prot2 = adv2.getProtections(SpreadsheetApp.ProtectionType.SHEET)
for (var i = 0; i < prot2.length; i++) {
var protection2 = prot2[i];
if (protection2.canEdit()) {
protection2.remove();
}
}
var adv3 = s.getSheetByName('Advocate3');
var prot3 = adv3.getProtections(SpreadsheetApp.ProtectionType.SHEET)
for (var i = 0; i < prot3.length; i++) {
var protection3 = prot3[i];
if (protection3.canEdit()) {
protection3.remove();
}
}
var adv4 = s.getSheetByName('Advocate4');
var prot4 = adv4.getProtections(SpreadsheetApp.ProtectionType.SHEET)
for (var i = 0; i < prot4.length; i++) {
var protection4 = prot4[i];
if (protection4.canEdit()) {
protection4.remove();
}
}
var adv5 = s.getSheetByName('Advocate5');
var prot5 = adv5.getProtections(SpreadsheetApp.ProtectionType.SHEET)
for (var i = 0; i < prot5.length; i++) {
var protection5 = prot5[i];
if (protection5.canEdit()) {
protection5.remove();
}
}
}
}
Если бы я мог в этом разобраться, это сэкономило бы много времени !!!