在 Google 表格中,我有一個標題為“已安排”的選項卡,其中包含我們客戶的所有匯入日期。如果匯入日期(D 列)小于或等于當前日期,我需要自動隱藏(不洗掉)該選項卡上的行。基本上,自動右鍵單擊行并根據上面列出的引數選擇“隱藏行”。
對 Google Apps Script 來說是全新的,因此非常感謝任何幫助。
uj5u.com熱心網友回復:
=$D1<edate(today(),6)
5個步驟:
- 選擇單元格,單元格
D1 - 轉到格式,條件格式

- 在格式規則下,滾動到下拉串列底部以找到“自定義公式是”

- 在文本輸入框中,復制并粘貼上面的代碼
- 將文本和背景顏色更改為白色。要更改顏色,請使用格式選項

請注意:更改單元格時,請將代碼更改D1為當前單元格。
uj5u.com熱心網友回復:
隱藏舊行
function hideOldRows() {
const ss = SpreadsheetApp.getActive();
const sh = ss.getSheetByName('Sheet0');
const sr = 2; //data start row
const dv = new Date().valueOf();
sh.getRange(sr,4,sh.getLastRow() - sr 1).getValues().flat().map((d,i) => [new Date(d).valueOf(),i sr]).filter(r => r[0] < dv).forEach(r => sh.hideRows(r[1]));
}
Sheet0之前:

Sheet0 之后:

uj5u.com熱心網友回復:
在腳本編輯器中試試這個:
function hideRows() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sh = ss.getSheetByName("Scheduled"); //get Scheduled sheet
var dateRange = sh.getRange(2, 4, sh.getLastRow()-1, 1); //get column D range
var dates = dateRange.getDisplayValues(); //get the values of column D using the range fetched above
var currentDate = new Date(); //get current date
for(var i = 0; i < dates.length; i ){
var date = new Date(dates[i][0].replace(/-/g, '\/').replace(/T. /, '')); //convert column D values to date
if(date.valueOf() <= currentDate.valueOf()){ // check if the date is less than or equal to current date
sh.hideRows(i 2); // hide row
}
}
}
測驗資料:

輸出:

參考:
- 日期值()
- Sheet.hideRows()
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/399233.html
