Несколько вещей может происходить здесь.
- Вы получаете число строк, равное
FRlastrow
, когда я думаю, что вы хотите получить только 1 строку. - Сценарий приложения имеет некорректное поведение с
onFormSubmit()
триггеры, поэтому вы можете проверить дубликаты триггеров (см. этот ответ ). - Сценарий не полностью использует объект события , предоставленный
onFormSubmit()
. В частности, вместо получения последней строки с одного листа, вы можете использовать e.values
, то есть те же самые данные.
Я бы изменил сценарий на что-то вроде этого:
function CopyLastrowformresponse (e) {
if (e.values && e.values[1] != "") { // assuming e.values[1] (the first question) is required
SpreadsheetApp.getActive()
.getSheetByName("All Responses")
.insertRowBefore(2)
.getRange(2, 1, 1, e.values.length)
.setValues([e.values]);
}
}
Но, в конечном счете, если все, что вам нужно, это просто изменить порядок результатов, тогда я бы вообще отказался от скрипта Apps и просто использовал =SORT()
функция.
=SORT('Form responses 2'!A:V, 'Form responses 2'!A:A, FALSE)