Ваша проблема в том, что ваш код всегда обновляет одни и те же 20 строк.Причина находится в этой строке: target_sheet.getRange(2,1,values.length,values[19].length)
Ваш целевой диапазон ВСЕГДА начинается со строки № 2, поэтому он будет перезаписывать все, что уже существует в строке № 2 и ниже.Вместо этого вы хотите, чтобы данные копировались в строку, следующую за «LastRow» (что бы это ни было).
Попробуйте это:
var targetLR = target.getLastRow();
var target_range = target_sheet.getRange(targetLR+1,1,values.length,values[19].length);
Два изменения здесь:
getLastRow()
возвращает позицию последней строки с содержимым.
Поэтому мы просто добавляем «1» к этому значению («targetLR + 1»), чтобы определить начало target_range в следующей строке.