如果您希望它在电子表格打开时自动打开,您必须安装一个可安装的 onOpen,它将调用以下函数(从脚本编辑器转到资源 > 此脚本触发器 > 添加新触发器 > sreadsheet / on Open)
这里是列的代码:(行见下文)
function customOnOpen() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sh = ss.getActiveSheet();
var headers = sh.getRange(1,1,1,sh.getLastColumn()).getValues();
var today = new Date().setHours(0,0,0,0);
for(var n=0;n<headers[0].length;++n){
var date = new Date(headers[0][n]).setHours(0,0,0,0);
Logger.log(today+' =? '+date)
if(date==today){
n++
Logger.log('match on column '+n)
if(n>=2){sh.getRange(1,n-1,sh.getMaxRows(),1).setBackground(null);};// resets the backGround for yesterday if not the first column
sh.getRange(1,n,sh.getMaxRows(),1).setBackground('yellow');
break;
}
}
}
这个版本为行着色
function customOnOpen2() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sh = ss.getActiveSheet();
var headers = sh.getRange(1,1,sh.getLastRow()).getValues();
var today = new Date().setHours(0,0,0,0);
for(var n=0;n<headers.length;++n){
var date = new Date(headers[n][0]).setHours(0,0,0,0);
Logger.log(today+' =? '+date)
if(date==today){
n++
Logger.log('match on column '+n)
if(n>=2){sh.getRange(n-1,1,1,sh.getMaxColumns()).setBackground(null);}
sh.getRange(n,1,1,sh.getMaxColumns()).setBackground('yellow');
break;
}
}
}
注意:如果您希望它基于计时器完全自动运行,这是完全可行的,只需使用 openById 和 getSheetByName (see doc here) 更改 ss 和 sh 变量并设置一个计时器以使其运行每天凌晨 1 点左右。