Удаление строки на основе двух условий - PullRequest
0 голосов
/ 21 сентября 2019

Итак, у меня есть ряд данных на листе.Мне нужно удалить строку, если столбец H = «Завершено» и если метка времени столбца A старше 48 часов.Моя проблема с добавлением в состоянии истекшего времени.Сценарий работает при удалении строки, если столбец H = "Complete".

var SS = SpreadsheetApp.openById("SheetID");
var SHEET = SS.getSheetByName("Form Responses");
var RANGE = SHEET.getDataRange();
var day = 24*3600*1000
var today = parseInt((new Date().setHours(0,0,0,0))/day);


var DELETE_VAL = "Complete";
var COL_TO_SEARCH = 7; // The column to search for the DELETE_VAL (Zero is first)
var COL_TO_SEARCH_2 = 0; // The column to search for the date (Zero is first)


function deleteEachRow(){

  var rangeVals = RANGE.getValues();

  //Reverse the 'for' loop.
  for(var i = rangeVals.length-1; i >= 0; i--){
    if(rangeVals[i][COL_TO_SEARCH] === DELETE_VAL && rangeVals[i][COL_TO_SEARCH_2] < today){

      SHEET.deleteRow(i+1); 
    };
  };
};

1 Ответ

1 голос
/ 21 сентября 2019
function deleteIfOlderThan2DaysAgo() {
  var ss=SpreadsheetApp.openById("SheetID");
  var sh=ss.getSheetByName("Form Responses");
  var rg=sh.getDataRange();
  var vA=rg.getValues();
  var dt=new Date();
  var twoDaysAgo=new Date(dt.getFullYear(),dt.getMonth(),dt.getDate()-2).valueOf();
  var d=0;
  for(var i=0;i<vA.length;i++){
    var col1=new Date(vA[i][0]).valueOf();
    if(vA[i][7]=="Complete" && col1<twoDaysAgo) {
      sh.deleteRow(i+1-d++); 
    }
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...