it-swarm.com.de

URL anzeigen, mit der Antworten aus einem Google Form mithilfe eines Skripts in einer Google-Tabelle bearbeitet werden

Ich versuche, die Bearbeitungs-URL für ein Google Form automatisch in das Antwort-Google Sheet einzufügen, an das es angehängt ist. Ich habe this bereits gesehen und möchte es verwenden, aber ich habe Probleme beim Versuch, herauszufinden, wo genau das Skript abgelegt werden soll.

Ich habe versucht, es in den Skript-Editor in der Google-Tabelle zu stellen, in der die URL erscheinen soll, bin mir aber nicht sicher, wohin ich von dort aus gehen soll. Im Skripteditor habe ich versucht, es als Add-On zu testen, aber das hat nicht funktioniert.

Ich habe wenig Erfahrung mit Skripten und dem Skripteditor in Google Sheets. Als letzte Anmerkung verwende ich ein weiteres Add-On namens AutoCrat in derselben Google-Tabelle.

10
nicks

Kurze Antwort

Das Link verweist auf eine Frage und Antwort, die zwei Antworten enthält, von denen jedoch keine aus meiner Sicht angemessen ist. I.E. Da der Code einer der Antworten unvollständig ist und beide E-Mails senden, ist die Annahme zu komplex, um als Ausgangspunkt verwendet zu werden.

Unten finden Sie ein Skript, das einfacher zu übernehmen ist.

Anleitung

  1. Erstellen Sie ein Testformular und notieren Sie die Formular-ID (zwischen ../d/ und /edit in der URL). New form

  2. Stellen Sie das Formular so ein, dass Antworten an eine neue Tabelle gesendet werden. Connect a spreadsheet

  3. Sie werden zur neuen Tabelle weitergeleitet. Notieren Sie sich den aktiven Blattnamen (benennen Sie ihn um, wenn Sie möchten) und fügen Sie eine Kopfzeile in die Spalte, in der die Antwort-Bearbeitungs-URLs gespeichert werden sollen, dh Edit Url. HINWEIS: Groß- und Kleinschreibung ist sehr wichtig. Seien Sie also sehr vorsichtig beim Schreiben. Responses spreadsheet

  4. Wechseln Sie zu Tools > Script editor, um ein Google Apps Script-Projekt hinzuzufügen, das an die Tabelle gebunden ist. Spreadsheet scripts

  5. Ersetzen Sie den Standardcode durch den folgenden Code (denken Sie daran, die globalen Variablen entsprechend Ihrem Fall zu bearbeiten). Script code

  6. Speichern Sie das Projekt, und fügen Sie dann einen installierbaren Formulargipfel-Trigger hinzu (wenn Sie das Dialogfeld "Autorisierung erforderlich" erhalten, klicken Sie auf "Berechtigungen überprüfen" und dann auf "Zulassen"). Form submit trigger

  7. Senden Sie einige Beispielantworten, um die Lösung zu testen.

Code

/*
 * Global Variables
 */

// Form URL
var formURL = 'https://docs.google.com/forms/d/form-id/viewform';
// Sheet name used as destination of the form responses
var sheetName = 'Form Responses 1';
/*
 * Name of the column to be used to hold the response edit URLs 
 * It should match exactly the header of the related column, 
 * otherwise it will do nothing.
 */
var columnName = 'Edit Url' ;
// Responses starting row
var startRow = 2;

function getEditResponseUrls(){
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheetName);
  var headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues(); 
  var columnIndex = headers[0].indexOf(columnName);
  var data = sheet.getDataRange().getValues();
  var form = FormApp.openByUrl(formURL);
  for(var i = startRow-1; i < data.length; i++) {
    if(data[i][0] != '' && data[i][columnIndex] == '') {
      var timestamp = data[i][0];
      var formSubmitted = form.getResponses(timestamp);
      if(formSubmitted.length < 1) continue;
      var editResponseUrl = formSubmitted[0].getEditResponseUrl();
      sheet.getRange(i+1, columnIndex+1).setValue(editResponseUrl);
    }
  }
}

Zusätzliche Ressourcen

Ich habe ein Gist mit dem Inhalt aus der Frage und Antwort erstellt. Ich suche nach Möglichkeiten, um besser zwischen Endbenutzern zusammenzuarbeiten, die Code schreiben.

15
Rubén