У меня возникли проблемы с запуском скрипта, который может генерировать уникальный код для каждой записи ответа формы. Теперь, когда я впервые попытался написать это, я использовал имя функции onFormReply(e), так как я где-то читал его, но оказалось, что оно на самом деле не работает, поэтому я пытаюсь использовать onEdit(e), но оно помечает большинство значений переменных, которые я написал как неопределенные, даже аргумент (e) самой функции (которая теоретически должна быть пользовательской и сделана похожей на ячейку/ячейки, в которых произошло редактирование). Вот код:
function onEdit(e) {
const ss = SpreadsheetApp.getActiveSheet();
const row = e.getRow();
var date = ss.getRange(row,1).getValue();
var department = ss.getRange(row,6).getValue();
department = department[0] + department[1]
var uniqueNumber = ss.getLastRow()
var finalCode = department + finalDate + uniqueNumber
ss.getRange(row,15).setValue(finalCode)
}
Решение проблемы
Если вы имеете дело с ответами Google Form, вы можете использовать метку времени в столбце A
в качестве уникального идентификатора. Эти метки времени точны до миллисекунды и для всех практических целей всегда будут уникальными.
Большим преимуществом этого является то, что вам не нужен скрипт для получения этих уникальных идентификаторов. Вместо этого используйте эту формулу массива в строке 1 свободного столбца справа на листе ответов формы:
=arrayformula(
{
"Unique ID";
iferror( text( 1 / A2:A ^ -1, "yyyy-MM-dd_HH-mm-ss-000") )
}
)
Формула автоматически заполнит весь столбец и будет продолжать давать больше результатов по мере отправки новых ответов формы.
Комментариев нет:
Отправить комментарий