如果日期超过一周,则Google工作表脚本会隐藏行

时间:2017-02-17 11:02:41

标签: google-apps-script google-sheets

如果F列中的日期早于一周,我想要一个隐藏行的脚本。我以为我找到了一个,但它隐藏了列的标题(第2行),这是没用的。

我不希望它隐藏空行,因为它们会不断更新。

非常感谢。

1 个答案:

答案 0 :(得分:2)

此功能检查列中的每个单元格以确保它是一个日期,然后它会在检测到7天之前的日期时隐藏行。当然,如果您愿意,可以更改它以使天数成为参数。它要求您选择当前默认为“A”的列。我加入菜单只是为了让你更容易测试。

希望这会有所帮助。

 function onOpen()
    {
      var ui = SpreadsheetApp.getUi();
      ui.createMenu('My Tools')
            .addItem('Hide Rows','hideRowsDate')
            .addToUi();
    }

    function hideRowsDate(column)
    {
      var column = (typeof(column) !== 'undefined') ? column : 'A';
      var day = 86400000;
      var today = new Date().getTime();
      var rng = SpreadsheetApp.getActiveSheet().getRange(column + ':' + column);
      var rngA = rng.getValues();
      for(var i = 0; i < rngA.length ;i++)
      {
        if(isDate(rngA[i][0]) && (((today - new Date(rngA[i][0]).getTime())/day) > 7 ))
        {
          SpreadsheetApp.getActiveSheet().hideRows(i + 1);
        }

      }
    }

    function isDate (x)  
    { 
      return (null != x) && !isNaN(x) && ("undefined" !== typeof x.getDate); 
    }