试试这个:
function onEdit(e) {
//e.source.toast('Entry');
var sh=e.range.getSheet();
if(sh.getName()=="Sheet2") {
//e.source.toast('Conditional');
var vs=sh.getRange(1,1,sh.getLastRow(),4).getValues();
vs.forEach(function(r,i){
let rg=sh.getRange(i+1,4);
if(r[1]=="") {
if(r[3]=="") {
//e.source.toast('yellow');
rg.setBackground('#ffff00');
}else{
//e.source.toast('white');
rg.setBackground('#ffffff');
}
}else{
//e.source.toast('r[1] not null');
rg.setBackground('#ffffff');
}
});
}
}
我对此进行了一些测试,它似乎可以工作
function onEdit(e) {
//e.source.toast('Entry');
var sh=e.range.getSheet();
if(sh.getName()=="Sheet2") {
//e.source.toast('Conditional');
var v=sh.getRange(6,1,sh.getLastRow()-5,sh.getLastColumn()).getValues();
var r0=sh.getRange(6,4,sh.getLastRow()-5,1);
var c0=r0.getBackgrounds();
var r1=sh.getRange(6,9,sh.getLastRow()-5,1);
var c1=r1.getBackgrounds();
var r2=sh.getRange(6,14,sh.getLastRow()-5,1);
var c2=r2.getBackgrounds();
var r3=sh.getRange(6,19,sh.getLastRow()-5,1);
var c3=r3.getBackgrounds();
var r4=sh.getRange(6,24,sh.getLastRow()-5,1);
var c4=r4.getBackgrounds();
v.forEach(function(r,i){
c0[i][0]=(r[1]=="" && r[3]=="")?'#ffff00':'#ffffff';
c1[i][0]=(r[6]=="" && r[8]=="")?'#ffff00':'#ffffff';
c2[i][0]=(r[11]=="" && r[13]=="")?'#ffff00':'#ffffff';
c3[i][0]=(r[16]=="" && r[18]=="")?'#ffff00':'#ffffff';
c4[i][0]=(r[21]=="" && r[23]=="")?'#ffff00':'#ffffff';
});
r0.setBackgrounds(c0);
r1.setBackgrounds(c1);
r2.setBackgrounds(c2);
r3.setBackgrounds(c3);
r4.setBackgrounds(c4);
}
}
对整个电子表格试试这个:
function onEdit(e) {
//e.source.toast('Entry');
var sh=e.range.getSheet();
//e.source.toast('Conditional');
var v=sh.getRange(6,1,sh.getLastRow()-5,sh.getLastColumn()).getValues();
var r0=sh.getRange(6,4,sh.getLastRow()-5,1);
var c0=r0.getBackgrounds();
var r1=sh.getRange(6,9,sh.getLastRow()-5,1);
var c1=r1.getBackgrounds();
var r2=sh.getRange(6,14,sh.getLastRow()-5,1);
var c2=r2.getBackgrounds();
var r3=sh.getRange(6,19,sh.getLastRow()-5,1);
var c3=r3.getBackgrounds();
var r4=sh.getRange(6,24,sh.getLastRow()-5,1);
var c4=r4.getBackgrounds();
v.forEach(function(r,i){
c0[i][0]=(r[1]=="" && r[3]=="")?'#ffff00':'#ffffff';
c1[i][0]=(r[6]=="" && r[8]=="")?'#ffff00':'#ffffff';
c2[i][0]=(r[11]=="" && r[13]=="")?'#ffff00':'#ffffff';
c3[i][0]=(r[16]=="" && r[18]=="")?'#ffff00':'#ffffff';
c4[i][0]=(r[21]=="" && r[23]=="")?'#ffff00':'#ffffff';
});
r0.setBackgrounds(c0);
r1.setBackgrounds(c1);
r2.setBackgrounds(c2);
r3.setBackgrounds(c3);
r4.setBackgrounds(c4);
}
请记住,如果您有多个人在编辑工作表,那么您将丢失一些编辑,因为脚本将无法跟上。