Google Spreadsheets (App-Skript), das eine Reihe von Informationen in eine andere Tabelle kopiert

Wenn in Spalte 5 Informationen eingegeben werden, muss diese Datenzeile in eine andere Tabelle kopiert werden. Das erste if () in meiner Funktion ist für etwas anderes, es sortiert die Daten, wenn irgendwelche Informationen in Spalte 4 eingegeben werden, was funktioniert, aber ich brauche das andere if (), um zu funktionieren, aber es funktioniert nicht, habe ich angeschaut andere Fragen, aber ich kann keine Antwort finden, die in meiner Situation funktioniert.

function onEdit(event) {
  var sheet=event.source.getActiveSheet();
  var editedCell=sheet.getActiveCell();
  var columnToSortBy=4;
  var columnToArchive=5;
  var tableRange= "A2:F!";

  if(editedCell.getColumn() == columnToSortBy){
    var range=sheet.getRange(tableRange);
    range.sort( {column : columnToSortBy} );
  }
  else{
    if(editedCell.getColumn() == columnToArchive){
      var rowToBeMoved=editedCell.getRow();
      var rangeToBeMoved=sheet.getRange("A" + rowToBeMoved + ":F" + rowToBeMoved);
      var values=rangeToBeMoved.getValues();
      var archiveSpreadSheet=SpreadsheetApp.openById("0AroBvchobu2edHNXQ3ZUQjI5TWJtWWZwa1UtcExPNnc");
      var archiveSheet=archiveSpreadSheet.getSheetByName("archive");
      archiveSheet.appendRow(values);
    }
  }
}

Ich habe festgestellt, dass das Problem bei den letzten drei Zeilen innerhalb des zweiten if-Blocks liegt. Es scheint, dass nach der Zeile "var values ​​= rangeToBeMoved.getValues ​​();" das Skript nicht mehr ausgeführt wird, da, wenn ich eine Browser.msgBox ("hi") nach dieser Zeile oder irgendwo davor anbringe, diese Meldung angezeigt wird, aber wenn ich setzen Sie es nach der nächsten Zeile, es erscheint nicht. Das Problem ist mit der .openById ()? HILFE!

Antworten auf die Frage(1)

Ihre Antwort auf die Frage