javascript - 如何根据谷歌表格中其他单元格的值更改单元格的颜色

标签 javascript google-apps-script google-sheets google-sheets-formula conditional-formatting

我知道 google 表格中的条件格式,但我有一种特定的用例。

如果 ALL N 列中的单元格,我希望 A 列中的单元格 n(以及一直向下)为绿色, OP 中有单词 pass

但我希望 A 列中的单元格 n 为红色,如果 N 中的单元格 ANYOP 包含 fail 而不管它们是否也包含 pass

有没有办法做到这一点?

最佳答案

说明:

  • 您可以使用 Google Apps Script实现你的目标,并在 特别是onEdit()模拟自动功能(编辑时) 更新条件格式。

  • 以下脚本将获取N, O中所有单元格的值 和 P 列,如果这些值所有通过那么它 将set A 列的背景颜色为绿色。在 另一方面,如果其中至少有一个未通过 pass,它将设置 A 列的颜色为红色。请随意将 sheet_name 更改为您自己的工作表名称。


解决方案:

function onEdit(e) {
  
 const sheet_name = 'Sheet1';
 const col = e.range.getColumn();
 const as = e.source.getActiveSheet();
 
 if(as.getName() === sheet_name && col>13 && col<17){
 
   const data = as.getRange('N1:P').getValues().flat();
   const range = as.getRange('A1:A');
   const allEqual = arr => arr.every( v => v === arr[0] );
   
   if(allEqual(data)){
     range.setBackground("green");
  }
   else {
     range.setBackground("red");
  }
 }
}

说明/演示:

demonstration

关于javascript - 如何根据谷歌表格中其他单元格的值更改单元格的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64036003/

相关文章:

javascript - 存储来自 php 脚本的信息

javascript - 使用 Selenium 脚本的 Javascript Executor 在网页上水平滚动

javascript - Google Workspace - 创建空间 - Google Apps 脚本

google-apps-script - 使用应用程序脚本将表单提交到电子表格时出错

javascript - 在 Google 脚本中对 for 循环变量进行数学运算

javascript - 如何使用 Google App Script 将格式化文本从 google 工作表单元格保存到 .rtf?

javascript - 匿名函数中的“this”关键字

javascript - 保留 CSS :hover when changing CSS styles with Javascript

google-apps-script - Google Apps 脚本中的 MailApp.sendEmail() 不发送电子邮件

javascript - 跳过迭代 Google Apps 脚本