自动更改用户编辑的单元格背景-Google表格

时间:2019-08-20 15:52:12

标签: javascript google-sheets

我正在尝试创建一个脚本,该脚本根据用户进行编辑来自动更改单元格的背景颜色。我目前有这段代码,但是它什么也没做。我们需要知道哪些用户正在编辑或创建新条目。

我只需要第一列中的单元格即可更改背景颜色。这是我正在与另外4个人一起工作的数据库

function checkEdits() {
    var s = SpreadsheetApp.getActiveSheet();

    //checks that we're on the correct sheet
    if (s.getName() == "Sheet1") { 
        var r = s.getActiveCell();

        //checks the column
        if (r.getColumn() == 1) {
            var email = r.Session.getActiveUser().getEmail();

            if (email == "XXXXX@gmail.com") {
                r.setBackground('#dbbf94');
            }

            if (mail == "YYYYYY@gmail.com") {
                r.setBackground('#94dbab');
            }

            if (mail == "ZZZZZZ@gmail.com") {
                r.setBackground('#a2bfdf');
            }

            if (mail == "MMMMMMMM@gmail.com") {
                r.setBackground('#cf9ce5');
            }

            if (mail == "NNNNNNN@gmail.com") {
                r.setBackground('#dfa2b1');
            }
        }
    }
}

我希望当用户在A列中编辑单元格时,同一单元格将其背景更改为特定的用户颜色

1 个答案:

答案 0 :(得分:0)

您可能想尝试一下。如果部分内容不清楚,请告诉我,我会为您提供更多详细信息。

function onEdit(e){
  if (e.range.getSheet().getSheetId() == e.source.getSheetByName("Sheet1").getSheetId() && e.range.getColumn() == 1.0){
    switch (e.user){
      case "XXXXX@gmail.com":
        e.range.setBackground('#dbbf94');
        break;
      case "YYYYYY@gmail.com":
        e.range.setBackground('#94dbab');
        break;
      case "ZZZZZZ@gmail.com":
        e.range.setBackground('#a2bfdf');
        break;
      case "MMMMMMMM@gmail.com":
        e.range.setBackground('#cf9ce5');
        break;
      case "NNNNNNN@gmail.com":
        e.range.setBackground('#dfa2b1');
        break;
      default:
        e.range.setBackground('white');
    }
  }
}

相关问题