2016-04-15 2 views
1

Angenommen, ich habe ein Google Formulare, die nur ein Element hat: eine kurze Antwort Artikel. Sobald ich das Formular abschicke, möchte ich ein Skript, damit es die Antwort ändert. Zum Beispiel möchte ich, egal was der Benutzer in die Frage eingibt, ein Skript, um es zu "foo" zu ändern. Die Formularantworten Google Sheet sollten auch "foo" als Antwort anzeigen.Google Script für Formulare: Formular bearbeiten Antworten sobald es eingereicht wird

Ich weiß es so etwas wie ScriptApp.newTrigger("edit_response").forForm(form).onFormSubmit().create(); beinhaltet, wo form = FormApp.getActiveForm() und edit_response eine Funktion ist, die das Ereignis e nimmt. Aber ich kann nicht scheinen, eine Methode zu finden, die Formularantworten ändern kann ...

Antwort

2

Eine Formularantwort innerhalb eines Google Formulars kann NICHT mit Apps Script bearbeitet werden. Eine in einer Kalkulationstabelle gespeicherte Antwort kann geändert werden, aber eine vorhandene Antwort in einem Formular kann nicht geändert werden. Eine Formularantwort kann mit Code gelöscht, aber nicht mit einer beliebigen Apps-Skriptmethode bearbeitet werden.

Sie können eine On Form einreichen Auslöser manuell einrichten. Es ist nicht erforderlich, einen Trigger aus dem Code zu erstellen, es sei denn, Sie erstellen beispielsweise neue Formulare mit Code und verteilen diese automatisch. Oder Leute installieren ein Add-on zu dem Formular.

Formularantworten werden immer in das Formular geschrieben. Das Schreiben der Formularantwortdaten auch in eine Kalkulationstabelle ist eine Option. Sie können die Daten nicht abfangen, bevor sie geschrieben werden. Aber Sie können ändern Sie es sofort, nachdem es geschrieben ist.

Die Funktion, die Trigger kann ein JavaScript-Objekt mit Formulardaten erhalten, die auf Formular abschicken dient. Die Variable, die dem Objekt zugewiesen wurde, ist oft "e". Aber es kann alles sein.

function myOnFormSubmitFunc(e) {}; 

Ein On-Form-Submit-Trigger kann entweder im Formular, im Sheet oder in beiden sein. Das On Form Submit-Objekt für das Sheet unterscheidet sich von dem für das Formular. Mit dem Sheet On Form Submit-Objekt können Sie beispielsweise direkt ein Array mit Werten abrufen.

var arrayOfValues = e.values; 

Apps Script Documentation - Sheets Form Submit events

Es gibt eine FormResponse Klasse:

Apps Script Documentation - FormResponse

Aber es kann eine bestehende Formular Antwort in das Formular nicht bearbeiten.

+0

Danke für die Antwort! Ich habe einen Trigger hinzugefügt, weil ich das Formular an einem bestimmten Datum auch schließen muss. "Sie können die Daten nicht abfangen, bevor es geschrieben wird" das ist aber zu schlecht. – donjar

Verwandte Themen