我正在使用谷歌脚本,想知道如果单元格上的 date 在特定持续时间内,我如何突出显示所有行的代码。
示例:如果单元格 A2 在 Today()+5 和 Today()-3 内,如果是,则以灰色突出显示所有行,如果不是,则移动到下一行
现有代码:
var spreadsheet = SpreadsheetApp.getActive();
spreadsheet.getRange('O:O').activate();
var conditionalFormatRules = spreadsheet.getActiveSheet().getConditionalFormatRules();
conditionalFormatRules.push(SpreadsheetApp.newConditionalFormatRule()
.setRanges([spreadsheet.getRange('O:O')])
.whenDateAfter(new Date()).setBackground('#808080'));
.whenDateAfter(new Date(new Date().getTime()-10*(1000*60*60*24)))
.whenDateBefore(new Date(new Date().getTime()-10*(1000*60*60*24)))
.setBackground('#808080')
.build());
回答1
高亮线(如果在范围内)
function lfunko() {
const ss = SpreadsheetApp.getActive();
const sh = ss.getSheetByName("SheetName");
const dt = new Date()
const hi = new Date(dt.getFullYear(), dt.getMonth(), dt.getDate() + 5).valueOf();
const lo = new Date(dt.getFullYear(), dt.getMonth(), dt.getDate() - 2).valueOf();
const vs = sh.getDataRange().getValues();
let d = 0;
vs.forEach((r,i) => {
let v = new Date(r[14]).valueOf()
if(v < lo && v < hi) {
//sh.getRange(i + 1,1,1,sh.getLastColumn()).setBackground("#ffff00");//highlites line to yellow
sh.deleteRow(i + 1 - d++);
}
})
}