谷歌表:根据用户编辑更改列颜色 结果

问题描述

我有一个工作表,其中三个用户将数据输入到列中。我想根据用户为它们(列)着色。哪个用户编辑/将数据添加到列中。根据用户编辑,应显示特定列的颜色。目前,我可以看到哪个用户编辑了该列

enter image description here

解决方法

据我所知,最明显的解决方案是创建一个 edit trigger,以便您可以识别编辑工作表和颜色的人。

function colorByUser(e){
  let user = e.user;
  let range = e.range;
  if(user){
    Logger.log(user);
    Logger.log(user.getEmail());
  }else{
    Logger.log("User not defined");
  }

  if(user.getEmail() == "<THE EMAIL YOU WANT TO COLOR RED>"){
    range.setBackground("red");
  }else{
    range.setBackground("blue");
  }
}

类似这样的事情,但因为有时获取用户可能很棘手,所以不要使用 simple trigger 而直接使用 installable trigger

function myFunction() {
  let ss = SpreadsheetApp.getActiveSpreadsheet();
  ScriptApp.newTrigger("colorByUser")
    .forSpreadsheet(ss)
    .onEdit()
    .create();
}

您可能想在 documentation 中查看此内容:

电子邮件地址可用的情况各不相同:例如,用户的电子邮件地址在任何允许脚本在未经用户授权的情况下运行的上下文中都不可用,例如简单的 onOpen(e) 或 onEdit(e)触发器,Google 表格中的自定义函数

结果

Sample of result

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...