Google apps script Google电子表格脚本,根据单元格值自动为整行着色
我接手了一份小组成员名单,这份名单是经过几代领导人的传承而来的,我不太明白 该电子表格用于根据第10列中单元格的值自动更新每行的颜色(来自6个不同的选项),但它神秘地停止了这样做 我一直在看里面的脚本,但我不太明白-有人有什么建议吗?非常感谢Google apps script Google电子表格脚本,根据单元格值自动为整行着色,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我接手了一份小组成员名单,这份名单是经过几代领导人的传承而来的,我不太明白 该电子表格用于根据第10列中单元格的值自动更新每行的颜色(来自6个不同的选项),但它神秘地停止了这样做 我一直在看里面的脚本,但我不太明白-有人有什么建议吗?非常感谢 function colorRow(r){ // only uncomment for Debuging //r = 2; var sheet = SpreadsheetApp.getActiveSheet(); var dataRa
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());
}
您说颜色取决于第10列的内容,但代码显示
var cellValue=row[10]代码>
数组索引为0,这意味着您将获得第11列的内容…(电子表格中的列索引为1)
这不是问题吗
EDIT:当您查看脚本时,我还建议在IF
语句中使用不同的条件,因为您使用的条件非常脆弱:如果有人在数字之前或之后键入空格,它将失败。。。
我会这样做:
if(cellValue.toString().match("1") == "1"){
它将“捕获”“1”值,即使它在其单元格中不是唯一的,并将最大值设置为9(之后,您将与10、11等混淆)
(但这只是一个建议…;)非常感谢你的建议,Serge-我同意,即使有空格,也能捕捉数字的条件更安全。无论出于何种原因,它都可以像现在一样处理列集。剩下的主要问题是r:如果我取消注释r=2并替换我想要重新调用的行(即:r=323),它对那一行有效,但我不知道如何使它对所有行以及未来的行有效。无论如何,非常感谢你的帮助!