Google скрипт копирование и перемещение - PullRequest
0 голосов
/ 07 января 2019

У меня был скрипт, который работал, а затем волшебным образом остановился. Я часами искал то, что могло вызвать проблему, но мне не повезло. Любые предложения здесь? Предполагается, что сценарий перемещает строку с одного листа на другой, если в конкретной ячейке установлен флажок. Затем, если этот флажок не отмечен, он отправляет его обратно на другой лист.

Я ненавижу просить такого рода вещи здесь ... но я действительно застрял, и никто не смог помочь. Я знаю, что вы все не редакторы кода, и вам нужно жарить больше рыбы, но любая помощь будет признательна ... и, надеюсь, кто-то другой может использовать это :).

function InvoiceArchive() {

  var Accounts = "Accounts";
  var Emailed = "Emailed";
  var Paid = "Paid";
  var Suspended = "Suspended";
  var Closed = "Closed";
  var triggerTrue = true;
  var triggerFalse = false;
  var accountEmailed = 14;
  var accountPaid = 15;
  var accountSuspended = 16;
  var accountClosed = 17;
  var undoArchive = "Emailed";
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = SpreadsheetApp.getActiveSheet();
  var range = sheet.getActiveCell();

//Archiving emailed invoices

  if (sheet.getName() == Accounts && range.getColumn() == accountEmailed && range.getValue() == triggerTrue) {

    var targetSheetE = ss.getSheetByName(Emailed);
    var targetRangeE = targetSheetE.getRange(targetSheetE.getLastRow() + 1, 1);
    sheet.getRange(range.getRow(), 1, 1, sheet.getLastColumn()).copyTo(targetRangeE);
  }

///  

//Archiving paid invoices

  if (sheet.getName() == Emailed && range.getColumn() == accountPaid && range.getValue() == triggerTrue) {

    var targetSheetP = ss.getSheetByName(Paid);
    var targetRangeP = targetSheetP.getRange(targetSheetP.getLastRow() + 1, 1);
    sheet.getRange(range.getRow(), 1, 1, sheet.getLastColumn()).moveTo(targetRangeP);
  }

//Undo paid archiving

  if (sheet.getName() == Paid && range.getColumn() == accountPaid && range.getValue() == triggerFalse) {

    var targetSheetU = ss.getSheetByName(undoArchive);
    var targetRangeU = targetSheetU.getRange(targetSheetU.getLastRow() + 1, 1);
    sheet.getRange(range.getRow(), 1, 1, sheet.getLastColumn()).moveTo(targetRangeU);
    sheet.deleteRow(range.getRow());
  }

///

//Archiving suspended invoices

  if (sheet.getName() == Emailed && range.getColumn() == accountSuspended && range.getValue() == triggerTrue) {

    var targetSheetS = ss.getSheetByName(Suspended);
    var targetRangeS = targetSheetS.getRange(targetSheetS.getLastRow() + 1, 1);
    sheet.getRange(range.getRow(), 1, 1, sheet.getLastColumn()).moveTo(targetRangeS);
}

//Undo suspended archiving

  if (sheet.getName() == Suspended && range.getColumn() == accountSuspended && range.getValue() == triggerFalse) {

    var targetSheetU = ss.getSheetByName(undoArchive);
    var targetRangeU = targetSheetU.getRange(targetSheetU.getLastRow() + 1, 1);
    sheet.getRange(range.getRow(), 1, 1, sheet.getLastColumn()).moveTo(targetRangeU);
    sheet.deleteRow(range.getRow());
  }

//Moving account to closed

  if (sheet.getName() == Suspended && range.getColumn() == accountClosed && range.getValue() == triggerTrue) {

    var targetSheetC = ss.getSheetByName(archiveClosed);
    var targetRangeC = targetSheetC.getRange(targetSheetC.getLastRow() + 1, 1);
    sheet.getRange(range.getRow(), 1, 1, sheet.getLastColumn()).moveTo(targetRangeC);
    sheet.deleteRow(range.getRow());
}

///  

//Archiving closed invoices

  if (sheet.getName() == Emailed && range.getColumn() == accountClosed && range.getValue() == triggerTrue) {

    var targetSheetC = ss.getSheetByName(archiveClosed);
    var targetRangeC = targetSheetC.getRange(targetSheetC.getLastRow() + 1, 1);
    sheet.getRange(range.getRow(), 1, 1, sheet.getLastColumn()).moveTo(targetRangeC);
}

//Undo closed archiving

  if (sheet.getName() == Closed && range.getColumn() == accountClosed && range.getValue() == triggerFalse) {

    var targetSheetU = ss.getSheetByName(undoArchive);
    var targetRangeU = targetSheetU.getRange(targetSheetU.getLastRow() + 1, 1);
    sheet.getRange(range.getRow(), 1, 1, sheet.getLastColumn()).moveTo(targetRangeU);
    sheet.deleteRow(range.getRow());
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...