Друзья, привет! Сегодня вопрос из нашего чата: нашей читательнице Алене понадобился скрипт, который запрещает редактирование строки (и удаляет введенное), если выбранные ячейки в строке выше не заполнены.
Алена предложила свой вариант скрипта. Мы его немного модифицировали и выкладываем результат для вас.
Таблица с примером.
function onEdit(e){
var wsData = e.source.getActiveSheet();
var celEdit = e.range;
var intRow = celEdit.getRow();
if(intRow > 2 && celEdit.getValue!=''){
var row = wsData.getRange(intRow-1, 1, 1, wsData.getMaxColumns()).getValues()[0];
var checkCols = [0, 2, 4]; // Какие ячейки проверяем, 0 = столбец A
var checker = checkBuilder(checkCols);
var isPass = row.filter(checker).length == 0;
if(!isPass){
SpreadsheetApp.getUi().alert('Вася, внеси все данные в обязательные для заполнения ячейки');
celEdit.clearContent();
}
}
}
var checkBuilder = function(cols){
return function(el, i){
return cols.indexOf(i) > -1 && el == '';
}
};
Алена — спасибо за отличную идею для поста!