google-apps-script - 根据值更改编辑单元格背景颜色

标签 google-apps-script google-sheets

如何在 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/

相关文章:

javascript - 仅当项目匹配时循环两列并复制行

具有多个条件的 JavaScript 运算符

regex - 使用正则表达式查看单元格是否包含 Google 表格中的表情符号

google-sheets - 不使用 Excel 对 Tableau 的交叉表数据进行标准化(重新格式化)

elasticsearch - 从Google Apps脚本查询ElasticSearch?

google-apps-script - 如何在 URL 中包含数据以供 Google Apps Script 网络应用程序读取?

google-apps-script - Google 脚本 - 在附加文本中插入缩进

javascript - Google Apps 脚本 - 更新时将时间戳添加到多个单元格

javascript - Google 脚本到计算机上的本地项目

database - 以有意义的方式可视化出勤数据