Immer aktuelle Tabelle Zeile nach formularversendung

Ich bin relativ neu in der Google Apps Script und habe mit ein sehr einfaches Skript, das ich erstellt vor etwa einem Jahr, die ausgelöst wird, wenn ein Nutzer Eingaben über ein Google-Formular. Das Drehbuch wurde perfekt funktioniert, bis ungefähr Mai dieses Jahres und ich habe schon kriechen, um herauszufinden, was passiert, wenn ich habe keine änderungen an meinem code. Ich habe gesucht, viele verschiedene Orte und kann nicht scheinen, um herauszufinden, was falsch ist.

Grundsätzlich habe ich ein Formular, das dem Benutzer die vollständige und senden Sie dann. Nach der Einreichung, das Skript nimmt die Eingaben aus der letzten Zeile und speichert Sie in Variablen, die dann zusammengefügt werden in eine E-Mail Bestätigung, dass erkennt jeder Benutzer die Eingabe eingereicht.

Hier ist mein code:

function acknowledgement() {

  var ActiveSheet = SpreadsheetApp.getActiveSheet();
  var ActiveRow = ActiveSheet.getActiveRange().getRow();
  var emailAddy = ActiveSheet.getRange("E"+ActiveRow).getValue();
  var locvar = ActiveSheet.getRange("C"+ActiveRow).getValue();
  var employeevar = ActiveSheet.getRange("B"+ActiveRow).getValue();

  var sh = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Variables");
  var contactvar = sh.getRange("A2").getValue();
  var subject = sh.getRange("B2").getValue();
  var contactvar2 = sh.getRange("C2").getValue();

  var linebrk = "<br />";

  var msg = "Dear " + employeevar + ","
    + linebrk + linebrk
    + "This confirms that you have completed your review of the latest security presentation."
    + linebrk + linebrk
    + "Your location number is " + locvar + "."
    + "Thank you very much for your participation."
    + linebrk + linebrk
    + contactvar;

  var msghtml = '<p>'+msg+'</p>';

  var advancedargs = {cc:contactvar2, htmlBody:msghtml};
  MailApp.sendEmail(emailAddy, subject, msg, advancedargs);
}

Was derzeit passiert, ist, dass mein code nicht mehr greifen die Nummer der aktuellen Zeile (also die aktive Zeile war nur von einem Benutzer übermittelt). Stattdessen ist es einfach nach der obersten Zeile des Blattes (also meine Zeile überschriften wie "Mitarbeiter Name', 'Email-Adresse', etc.) und zuweisen von Zeilen-überschriften zu den Variablen, so dass ein Fehler beim senden der E-Mail-Bestätigung. Zum Beispiel meine variable emailAddy enthalten würde, "E-Mail-Adresse" verursacht sendEmail zu scheitern.

Jegliches feedback wäre dankbar!

  • Ich nehme an, Sie legen einen "trigger" auf Formular Absenden " auf dieser Bestätigung die Funktion richtig ? Zweite Frage: gibt es etwas in Ihrem Blatt unter der letzten Antwort in der Zeile?
  • Hallo Serge, ja, ich habe setzen Sie ein "onFormSubmit' auslösen. Und, es gibt nichts unter der letzten Antwort. Zeilen aufgenommen wurden, via Google-Formular, ohne ein Problem, aber ich habe nicht immer die E-Mail-Bestätigungen, noch haben die Nutzer übermitteln Ihre Eingabe. Danke!
InformationsquelleAutor Martin | 2013-07-19
Schreibe einen Kommentar