Google表格-在输入日期超过今天的日期后隐藏行

时间:2019-01-11 00:30:38

标签: google-apps-script google-sheets spreadsheet

我对创建脚本以使其无法在Google表格中运行完全不熟悉。

但是我希望一旦输入日期超过了今天的日期就可以隐藏任何给定的行。我已经附好了床单。

Spreadsheet

任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

尝试一下:

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表示的事件对象,该对象是该功能所必需的。请阅读此reference

相关问题