问题描述
我有一个工作表,其中三个用户将数据输入到列中。我想根据用户为它们(列)着色。哪个用户编辑/将数据添加到列中。根据用户编辑,应显示特定列的颜色。目前,我可以看到哪个用户编辑了该列
解决方法
据我所知,最明显的解决方案是创建一个 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 表格中的自定义函数