我正在接管一个小组成员名单,该名单已经过几代人的领导传承,我不能相当弄清楚...
电子表格使用根据第10列中的单元格值自动更新每行的颜色(来自6个不同的选项) - 但神秘地停止了这样做。
我一直在看那里的剧本,但我无法弄清楚 - 有没有人有任何建议?非常感谢!
function colorRow(r){
// only uncomment for Debuging
//r = 2;
var sheet = SpreadsheetApp.getActiveSheet();
var dataRange = sheet.getRange(r, 1, 1, sheet.getLastColumn());
// will get the row
var row = dataRange.getValues()[0];
// change the row[8] to row[?] where ? is your column number
var cellValue = row[10];
if(cellValue == "1"){
dataRange.setBackgroundRGB(255, 0, 255);
}
else if(cellValue == "2"){
dataRange.setBackgroundRGB(255, 153, 0);
}
else if(cellValue == "3"){
dataRange.setBackgroundRGB(153, 204, 255);
}
else if(cellValue == "4"){
dataRange.setBackgroundRGB(0, 255, 0);
}
else if(cellValue == "5"){
dataRange.setBackgroundRGB(0, 255, 255);
}
else if(cellValue == "6"){
dataRange.setBackgroundRGB(255, 255, 0);
}
// not sure if I need to flush...
SpreadsheetApp.flush();
}
function onEdit(event)
{
colorRow(event.source.getActiveRange().getRowIndex());
}
答案 0 :(得分:1)
您说颜色取决于第10列的内容,但代码显示为var cellValue = row[10];
数组被编入索引,这意味着您将获得第11列的内容...(电子表格中的列被索引为1)
这不是问题吗?
编辑:当您查看脚本时,我还建议您在IF
语句中使用不同的条件,因为您使用的条件非常脆弱:如果有人输入数字之前或之后的空间会失败...
我要做的是这样的事情:
if(cellValue.toString().match("1") == "1"){
它将“捕获”'1'值,即使它不是单独存在于其单元格中并且将达到值9(此后你会对10,11等感到困惑......) (但这只是一个建议......;)