Google Spreadsheets (aplicativo-script) copiando uma linha de informações para outra planilha

Preciso, se alguma informação for inserida na coluna 5, copiar essa linha de dados para outra planilha. O primeiro if () na minha função é para outra coisa, ele classifica os dados quando qualquer informação é inserida na coluna 4, o que funciona, mas eu preciso que o outro if () funcione, mas não funciona, eu olhei outras perguntas, mas não consigo encontrar uma resposta que funcione na minha situação.

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

Eu identifiquei que o problema é com as últimas três linhas dentro do segundo bloco. Parece que depois da linha "var values ​​= rangeToBeMoved.getValues ​​();", o script pára de funcionar porque se eu colocar um Browser.msgBox ("hi") depois dessa linha ou em qualquer lugar antes, essa mensagem aparece, mas se eu colocá-lo após a próxima linha, não aparece. O problema é com o .openById ()? SOCORRO!

questionAnswers(1)

yourAnswerToTheQuestion