Google Sheet Script wird nicht vollständig ausgeführt

Aug 27 2020

Ich verwende ein Google Form, um dieses Skript auszulösen.
Wenn ich das Skript mit der Wiedergabetaste ausführe, funktioniert es perfekt.
Wenn ich den onsubmit-Trigger ausführen lasse, wird das Kontrollkästchen gut ausgefüllt, das setValue-Datum jedoch nicht.
Ich habe es auch versucht, setFormulaaber ich bekomme das gleiche Ergebnis.

function AddCheckBox_toSchoolLunchForm(F) {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Form Responses 1")
  var criteria = SpreadsheetApp.DataValidationCriteria.CHECKBOX;
  var rule = SpreadsheetApp.newDataValidation().requireCheckbox().build();
  var range = sheet.getRange(sheet.getLastRow(), 8);
  range.clearContent();
  range.setDataValidation(rule);
  var FormulaCell = sheet.getRange(sheet.getLastRow(), 10);
  FormulaCell.setFormula("=DATEVALUE(A" + (sheet.getLastRow()) + ")");
}

Das Endziel besteht darin, Spalte J bei jedem Absenden des Formulars mit dem Schussformat aus Spalte A zu füllen.
Ich benötige dieses Format, um ein countIfs auf einem anderen Blatt auszuführen.

Eine andere Möglichkeit wäre, ein Format-Tag in diesen CountIfs-Befehl einzubetten, damit sie übereinstimmen.

=COUNTIFS('Form Responses 1'!J:J,A2,'Form Responses 1'!D:D,B2)

Antworten

ziganotschka Aug 27 2020 at 21:25

AKTUALISIERTE ANTWORT

Wenn Sie Probleme haben, eine Funktion am Trigger auszuführen, während sie wie beabsichtigt ohne Trigger funktioniert, überprüfen Sie Folgendes:

  • Bei umfangreichen Dateien / Formulardaten kann es zu Verzögerungen beim Auffüllen des Blattes mit neuen Formulardaten kommen.

    • Um Konflikte zu vermeiden, geben Sie der Tabelle etwas Zeit, um die neue Zeile zu füllen, bevor Sie sheet.getLastRow()Daten in der Tabelle abrufen oder darauf zugreifen.

    • Sie können einfach mit Utilities.sleep () punktieren .

  • Überprüfen Sie, ob Ihr Trigger korrekt installiert wurde. Überprüfen Sie diesbezüglich

    • Die Art des Auslösers ist korrekt
    • Der Trigger ist an die richtige Funktion gebunden
    • Vermeiden Sie Konflikte, indem Sie beim Umbenennen der Funktion einen neuen Auslöser erstellen.
  • Überprüfen Sie, ob das Problem nicht aufgrund Trigger Einschränkungen

  • Dies ist eine häufige Fehlerquelle bei der Verwendung einfacher Trigger.

  • Überprüfen Sie, ob das Konto, unter dessen Berechtigung der Trigger ausgeführt wird, über Berechtigungen zum Bearbeiten des Blattes / Bereichs verfügt. Dies ist wichtig, um zu überprüfen, ob der Triggerbesitzer eine andere Person ist als die Person, die das Skript manuell ausführt.

  • Beachten Sie, dass setFormula()es nicht erforderlich ist, das =in die Formel aufzunehmen

  • Beachten Sie, dass DATEVALUE()das erwartete Ergebnis nur zurückgegeben wird, wenn die Zelle korrekt als Datum formatiert ist