如何在 onEdit()
函数中根据单元格内容更改单元格背景颜色?
我为此测试过许多版本的代码 - 有些几乎可以正常工作,有些则根本无法工作。 但我还没有让它按照我需要的方式工作。
请原谅这种编写方式不够优雅,但我实际上需要使代码尽可能简单,因为将会有许多单元格更改、许多条件条件以及许多不同数量的单元格将被更改取决于工作表上的更改。
好的,所以这里是......
function onEdit(event)
{
var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet2");
var changedCell= event.source.getActiveRange().getA1Notation();
if (changedCell == 'B3') {
var c = ss.getRange("B3").getValue();
if (c < 2); {
ss.getRange("B3").setBackgroundColor('#ff0000');
ss.getRange("B12").setBackgroundColor('#ff0000');
}
if (c > 1); {
ss.getRange("B3").setBackgroundColor('#000000');
ss.getRange("B12").setBackgroundColor('#000000');
}
}
}
最佳答案
一些需要注意的事情
1.方法名称是setBackground
而不是setBackgroundColor
2.B3单元格的格式如何。仅当其格式为整数时,比较才有效。在大多数情况下,Google 电子表格会根据数据类型自动设置单元格格式,但如果我正在编写代码,我会仔细检查。所以使用类似
var c = parseInt(ss.getRange("B3").getValue()) ;
3.if
条件后不需要分号。这将立即终止 if 条件。所以使用
if (c < 2) {
和
if (c > 1) {
4.最后,我不知道数据是如何进入B3的,但是如果B3中有1.5,那么两个if
条件都变为true,并且你的背景颜色被覆盖。所以,我建议你使用 if..elseif
为了更好的可读性,我将使用 setBackground('red')
和 setBackground('white')
作为常见颜色。
关于google-apps-script - 根据值更改编辑单元格背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17560263/