Google Apps Script - Automatische Sortierung (beim Bearbeiten) (nur bestimmte Blätter)

Früher hatte ich ein Skript für mein Sheet, das auf @ basierthttps: //webapps.stackexchange.com/questions/7211/how-can-i-make-some-data-on-a-google-spreadsheet-auto-sortin Hier klicken, um ein bestimmtes Blatt bei jeder Bearbeitung automatisch zu sortieren. Ich kann das Datum jedoch nicht festlegen, es scheint nicht mehr zu funktionieren. Ich habe bereits einige Nachforschungen angestellt und anscheinend wurde die Sortiermethode vor einiger Zeit geändert.

Nun, im Grunde ist das, was ich brauche, das Folgende: Ich habe eine Google-Tabelle mit einer Menge verschiedener Blätter (20+). Früher hatte ich nur ein Blatt, das sortiert werden musste, aber das Ganze ist im Laufe der Zeit gewachsen jetzt sind es schon zwei Blätter, die ich sortieren muss, und es ist sehr wahrscheinlich, dass die Anzahl noch weiter zunimmt - und es ist entscheidend, dass die Sortierung nur für diese spezifischen Blätter gilt. Und um das Problem noch komplizierter zu machen, ist die Reihenfolge der Blätter nicht festgelegt, sodass ich nicht mit Blatt-IDs arbeiten kann, da sich diese wahrscheinlich ändern werden. Daher muss es mit den Blattnamen funktionieren (die sich ebenfalls ändern können, aber nicht sehr wahrscheinlich - und wenn es passiert, wird das Skript ziemlich schnell angepasst).

Blätter, die sortiert werden müssen, enthalten viele Daten in ca. 6-7 Spalten, haben eine Kopfzeile und sollten nach der ersten Spalte sortiert werden, wobei die kleinste Zahl oben liegt.

Was mir bis jetzt einfiel, ist das Folgende:

function AutoSortOnEdit(){
  // select active sheet
  var ss = SpreadsheetApp.getActiveSpreadsheet();

  // select correct sheet
  var sheet = ss.getSheetByName("testsheet456");

  // select range (exclude top row)
  var range = sheet.getRange("A2:ZZ999");

  // actually do the sorting
  range.sort({column: 1, ascending: true});

 Browser.msgBox("sort done"); 
}

Das Meldungsfeld ist nur da, also sehe ich, dass das Ding ausgeführt wurde, sobald es richtig funktioniert, wird dieses entfernt. Ich habe auch einen benutzerdefinierten Auslöser hinzugefügt, der beim Bearbeiten aus der Tabelle stammt.

Was funky ist, ist, wenn ich die range.sort auf nur "(1, true)" ändere, anstatt was ich jetzt habe, wird ein Fehler ausgegeben "method sort (number, boolean) not found" ...

Aber die schlechte Nachricht ist tatsächlich: mit diesem Code oben a) bekomme ich keine Fehlermeldung b) das Meldungsfeld wird angezeigt, also hat es die ganze Sache tatsächlich durchlaufen, c) es funktioniert auch, wenn ich die Sache tatsächlich bearbeite (was gut ist ) aber d) es wird überhaupt nicht sortiert ...

Also, kann mir jemand dabei helfen? Ich sehe keinen wirklichen Grund, warum das nicht funktionieren sollte (aber andererseits bin ich kein Programmierer, deshalb bin ich hierher gekommen, um Hilfe zu holen.: P). Außerdem würde ich dann - wie in der Einleitung angegeben - immer noch eine Möglichkeit benötigen, dieses Skript auf zwei (oder mehr) bestimmte Blätter (nach Namen) anzuwenden, da es derzeit nur für ein Blatt gilt, aber ich wollte, dass es funktioniert einer zuerst, und es scheitert sogar gerade jetzt damit ....

Danke im Voraus

Pete

Antworten auf die Frage(4)

Ihre Antwort auf die Frage