Во время тестирования я обнаружил ошибки, которые оставил в качестве комментария выше. Я также хотел бы как можно быстрее добавить возврат на другие листы, чтобы код возвращался на нежелательные листы как можно быстрее.
function onChange() {
var ss=SpreadsheetApp.getActive();
var sh=ss.getActiveSheet();
var rg=sh.getActiveRange();
Logger.log('Head: Sheet: %s Range: %s col: %s row: %s value: %s',sh.getName(),rg.getA1Notation(),rg.getColumn(),rg.getRow(),rg.getValue());
if(sh.getName()=='INCOMPLETE' || sh.getName()=='COMPLETE'){
if(sh.getName()=='INCOMPLETE' && rg.getColumn()==7 && rg.getValue()=='COMPLETE') {
var tsh=ss.getSheetByName('COMPLETE');
var trg=tsh.getRange(tsh.getLastRow() + 1, 1);
sh.getRange(rg.getRow(), 1, 1, sh.getLastColumn()).copyTo(trg);
sh.deleteRow(rg.getRow());
Logger.log('Top: Sheet: %s Range: %s col: %s row: %s',sh.getName(),rg.getA1Notation(),rg.getColumn(),rg.getRow());
}
if (sh.getName()=='COMPLETE' && rg.getColumn()==7 && rg.getValue()=='INCOMPLETE') {
var tsh=ss.getSheetByName('INCOMPLETE');
var trg=tsh.getRange(tsh.getLastRow() + 1, 1);
sh.getRange(rg.getRow(), 1, 1, sh.getLastColumn()).copyTo(trg);
sh.deleteRow(rg.getRow());
Logger.log('Bot: Sheet: %s Range: %s col: %s row: %s',sh.getName(),rg.getA1Notation(),rg.getColumn(),rg.getRow());
}
}else{
return;//quick return for other sheets
}
}