【发布时间】:2016-08-10 14:14:17
【问题描述】:
我有一个 Google 表格文档,用作工作时间表。我目前正在使用以下脚本根据“K”列中的数字对整个行背景进行排序和更改;但是,我现在想知道如何根据输入的内容更改“I”列的背景颜色。因此,例如,如果我在该列中输入“红色”,我希望只有单个单元格的背景变为红色。
我知道使用条件格式很容易做到这一点,但是我不断地在此工作表中添加新行并将其他行移动到另一页,因此条件格式很快就会失去正确应用它的范围(如果有意义的话)
谢谢!
function onEdit(e) {
if(e.range.columnStart === 11) {
// color the row according to the color codes and logic shown below
var refs = [14, "#93c47d", 15, " #00ffff", 16, "#f4c432", 17, "#ff00ff", 20, "#ffff00", ,"#ffffff"], index;
if(e.value >= 1 && e.value < 14) {
index = 0;
} else if(refs.indexOf(Number(e.value)) !== -1) {
index = refs.indexOf(Number(e.value));
} else {
index = refs.length - 2;
}
var r = e.range.rowStart, A1 = r + ":" + r;
e.source.getRange(A1).setBackground(refs[index + 1]);
// sort the range after coloring
e.source.getRange("A:K").sort({column: 11});
}
}
【问题讨论】: