Arkusze kalkulacyjne Google (skrypt aplikacji) kopiują wiersz informacji do innego arkusza kalkulacyjnego

Muszę, jeśli jakieś informacje zostaną wprowadzone do kolumny 5, skopiuj ten wiersz danych do innego arkusza kalkulacyjnego. Pierwsza funkcja if () w mojej funkcji dotyczy czegoś innego, sortuje dane, gdy jakiekolwiek informacje są wprowadzane do kolumny 4, co działa, ale potrzebuję drugiej, jeśli (), aby działała, ale nie, patrzyłem na inne pytania, ale nie mogę znaleźć odpowiedzi, która zadziała w mojej sytuacji.

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);
    }
  }
}

Zidentyfikowałem, że problem dotyczy trzech ostatnich linii w drugim bloku if. Wygląda na to, że po wierszu „var values ​​= rangeToBeMoved.getValues ​​();” skrypt przestaje działać, ponieważ jeśli umieściłem Browser.msgBox („hi”) po tej linii lub gdziekolwiek wcześniej, pojawia się ten komunikat, ale jeśli ja umieścić go po następnej linii, nie pojawia się. Problem jest z .openById ()? WSPARCIE!

questionAnswers(1)

yourAnswerToTheQuestion