Как я могу установить место назначения ответа формы как конкретный лист в электронной таблице?

Итак, я отправляю огромное количество форм, каждая из которых специально предназначена для этого конкретного респондента (контекст вопросов в форме изменяется для пользователя, для которого она отправлена), с этой частью все в порядке. Но я хочу записать их ответ в главную электронную таблицу, где каждый пользователь представлен листом в этой электронной таблице. Я хочу сделать что-то вроде

//activeRef is a Row object on another spreadsheet
//responseSS is an already existing spreadsheet
For each member - of which there are N - {
    responseSS.insertSheet(activeRef.refereeID);
    activeResponseSheet = responseSS.getSheets()[N];
    conflForm = FormApp.create('Conflict Declerations')
    conflForm.setDescription(DESCRIPTION)
             .setAllowResponseEdits(true)
             .setShowLinkToRespondAgain(false)
             .setDestination(FormApp.setDestinationType.SHEET, responseSS.getSheets()[N]);
}

К сожалению, вы не можете указать в качестве места назначения такой конкретный лист, как этот, насколько я понимаю, это должна быть электронная таблица. Я мог бы иметь определенную электронную таблицу для каждого ответа формы, но их будет от десятков до сотен - было бы удобнее записывать каждый ответ на один лист в главной электронной таблице.

Есть ли какое-то решение?

Спасибо


person eclement    schedule 14.02.2014    source источник
comment
обратите внимание, это может дать вам несколько идей: stackoverflow.com/questions/21783279/   -  person Harold    schedule 15.02.2014
comment
В настоящее время нет возможности отправлять несколько форм непосредственно в одну и ту же таблицу. Я бы порекомендовал создать основную электронную таблицу, а затем использовать = IMPORTRANGE (support.google .com / drive / answer / 3093340? hl = ru) на каждой отдельной вкладке (по одной на форму) в основной электронной таблице. Это приведет к получению необходимых данных и их автоматическое обновление. Для дальнейшего сопоставления ваших данных на одной вкладке вы можете написать ручной / запускаемый скрипт, который работает через вкладки и копирует всю вашу информацию на одну вкладку uber. Долго, но он сделает то, что вы хотите.   -  person Sam Scholefield    schedule 15.02.2014
comment
Спасибо, я пытаюсь сделать что-то в этом направлении, но сейчас столкнулся с другой проблемой. Поскольку мои формы создаются динамически, я не могу придумать, как бы назначить триггер formSubmit для каждого (автоматически). Как заставить код реагировать на отправку формы, не заходя в каждую связанную электронную таблицу форм вручную, чтобы добавить соответствующий сценарий. Может быть, я неправильно понимаю ваше предложение IMPORTRANGE?   -  person eclement    schedule 18.02.2014


Ответы (1)


Невозможно настроить конкретный лист для получения ответов формы, потому что процесс связывания электронной таблицы-формы создает новый лист.

Есть две альтернативы

  1. Используйте формулу (например, ={'Form Responses 1'!A2:G;'Form Responses 2'!A2:G;'Form Responses 3'!A2:G})
  2. Используйте устанавливаемый триггер отправки формы из a для электронной таблицы, получающей ответы формы. Объект события включает несколько полезных свойств, например range, values и т. Д.
  3. Используйте один устанавливаемый триггер отправки формы для каждой формы. Объект события включает несколько полезных свойств, например response
person Rubén    schedule 26.06.2020