Google App Script, перемещение строки на другой лист, если дата прошла - PullRequest
0 голосов
/ 30 июня 2019

Я работал над этим кодом и проводил некоторые исследования последние пару недель, и мне не повезло. Я пытаюсь настроить триггер, который будет сканировать столбец C дат и, если дата прошла, переместить эту конкретную строку на другой лист.

Ниже я сейчас нахожусь.

Обратите внимание, что у меня есть сегодняшняя дата, хранящаяся в ячейке "O2" листа "Язык контрактов".

Я получил этот код для работы с текстом, но не с датами.

Любой совет с благодарностью!

function MovetoPastShows2() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName('Confirmed Deals'); //source sheet
  var testrange = sheet.getRange('C:C');
  var testvalue = testrange.getValues();
  var todaysheet = ss.getSheetByName('Contract Language');
  var todaycol = todaysheet.getRange('O2');
  var today = todaycol.getValues().valueOf();
  var csh = ss.getSheetByName('Confirmed (Past)'); //destination sheet
  var data = [];
  var j =[];


for (i=0; i<testvalue.length;i++) {
  if ( testvalue[i] = today) {
  data.push.apply(data,sheet.getRange(i+1,1,1,187).getValues());
  j.push(i);
 }
 }

 csh.getRange(csh.getLastRow()+1,1,data.length,data[0].length).setValues(data);

  for (i=0;i<j.length;i++){
  var k = j[i]+1;
  sheet.deleteRow(k);

  if (!(i == j.length-1)) {
  j[i+1] = j[i+1]-i-1;
}
}
};

1 Ответ

0 голосов
/ 30 июня 2019

Переместить прошлые строки в лист назначения

function MovetoPastShows2() {
  var ss = SpreadsheetApp.getActive();
  var sh=ss.getSheetByName('Confirmed Deals'); 
  var rg=sh.getDataRange();
  var vA=rg.getValues();
  var today=new Date(ss.getSheetByName('Contract Language').getRange('O2').getValue()).valueOf();
  var dsh=ss.getSheetByName('Confirmed (Past)'); 
  var d=0;
  for(var i=0;i<vA.length;i++) {
    if (new Date(vA[i][2]).valueOf()<=today) {
      dsh.appendRow(vA[i])
      sh.deleteRow(i+1-d);
      d++;
    }
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...