2017-02-17 108 views
-2

我想要一個隱藏行的腳本,如果列F中的日期大於一週。我以爲我找到了一個,但它隱藏了列的標題(第2行),這是沒用的。Google Sheet腳本隱藏行如果列中的日期超過一週

我不想讓它隱藏空行,因爲它們會不斷更新。

非常感謝。

+1

你試過了什麼代碼?請編輯您的問題以包含您的嘗試。 – c0de

回答

1

此函數檢查列中的每個單元格以確保它是一個日期,然後當它檢測到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); 
    } 
相關問題