Google Sheets - Поиск скрытых строк после даты ввода, прошедшей сегодняшнюю дату - PullRequest
0 голосов
/ 11 января 2019

Я совсем не слишком знаком с созданием скрипта для запуска на листах Google.

Но я надеюсь, что смогу скрыть любую строку после того, как введенная дата прошла сегодняшнюю. Я приложил лист.

Spreadsheet

Кто-нибудь сможет мне помочь?

1 Ответ

0 голосов
/ 11 января 2019

Попробуйте это:

function hideOldRows(){
  var ss=SpreadsheetApp.getActive();
  var sh=ss.getActiveSheet();
  var rg=sh.getDataRange();
  var vA=rg.getValues();
  var dt=new Date();
  var tdv=new Date(dt.getFullYear(),dt.getMonth(),dt.getDate()).valueOf();
  for(var i=1;i<vA.length;i++) {
    if(new Date(vA[i][2]).valueOf()<tdv){
      sh.hideRows(i+1);
    }
  }
}

Если используется с триггером:

function hideOldRows(e){
  var rg=e.range;
  var sh=rg.getSheet();
  var inclA=['Patrick'];//You can add other sheet names to the included list of sheets. The function will return for other sheets on the next line.
  if(inclA.indexOf(sh.getName())==-1){return;}
  var rg=sh.getDataRange();
  var vA=rg.getValues();
  var dt=new Date();
  var tdv=new Date(dt.getFullYear(),dt.getMonth(),dt.getDate()).valueOf();
  for(var i=1;i<vA.length;i++) {
    if(new Date(vA[i][2]).valueOf()<tdv){
      sh.hideRows(i+1);
    }
  }
}

Вы не можете запустить эту функцию из редактора сценариев, потому что триггер onEdit предоставляет объект события, представленный буквой e в этой функции, который необходим для этой функции. Пожалуйста, прочитайте это ссылка

...