Я написал следующий скрипт, который корректно работает для меня как создателя листа с полными правами редактирования. Этот лист также предоставляется другому лицу с правами редактирования, но определенные ячейки для этого пользователя заблокированы. В результате, когда они открывают лист, скрипт не запускается. Кажется, в этой строке впервые появляется ошибка:
var values = range.getValues (). Map (function (d) {return d [0]})
Я пытался переписать код, но все, что я в итоге делаю, - это ломаю его. Если я должен разблокировать ячейки для пользователя, то как я могу гарантировать, что они не смогут изменить введенную там информацию? Информация вызывается через форму с закрытого и скрытого листа.
function onOpen(){
var ss = SpreadsheetApp.getActive();
var sheetsCount = ss.getNumSheets();
var sheets = ss.getSheets();
for (var i = 0; i < sheetsCount; i++){
var sheet = sheets[i];
var range = sheet.getRange(6, 3, 35);
var values = range.getValues().map(function(d){ return d[0] });
//clear previous border
var selection = sheet.getRange(6,2,35,5)
selection.setBorder(false,false,false,false,false,false);
//set border
var index = values.indexOf("");
var border = sheet.getRange(5, 2, index+1, 5);
border.setBorder(true, true, true, true, true, true);}
}