Есть еще один способ, которым я недавно воспользовался. Каждый раз, когда запускается onEdit (), он возвращает объект события (e ), который дает вам некоторую ценную информацию о том, что происходит.
Например, он дает вам диапазон, который вы можете получить из e.range. Оттуда вы можете перемещаться по-разному и, например, узнать, какая строка редактируется. Но в объекте e есть и более полезные данные. Он дает вам "старое значение" (e.oldValue) ячейки, которое вы редактировали, и новое значение (e.value).
Один из возможных способов смешать всю эту информацию вместе - получить диапазон, соответствующий редактируемой строке, а затем проверить, все ли ячейки пусты (кроме той, которую вы только что отредактировали), и нет ли oldValue.
Это не обязательно соответствует последней строке вашей электронной таблицы, это пустая строка. Если вы согласны с тем, как вы заполняете свои данные, это может сработать для вас:
//val = inserted value (e.value);
//old = old Value (e.oldValue);
//col = number of column being edited
//arr = array with the indexes of the columns that should be completed so as to make a new row [0,1,2...n]
function isInsert(old, val, col, arr){
if((typeof val != "object")&&!old&&(arr.some(isNotEmpty, col)))
return true;
else
return false;
}
function isNotEmpty(el){
if(this == el)
return true;
}
person
Diego
schedule
13.07.2016