【问题标题】:Changing cell background on user edit automatically - Google Sheets自动更改用户编辑时的单元格背景 - Google 表格
【发布时间】:2019-08-20 15:52:12
【问题描述】:

我正在尝试制作一个脚本,该脚本会根据哪个用户对其进行编辑来自动更改单元格的背景颜色。我目前有这个代码,但它没有做任何事情。我们需要知道哪些用户编辑或创建了新条目。

我只需要第一列中的单元格来更改背景颜色。这是我正在与其他 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 列中编辑一个单元格时,同一个单元格会将其背景更改为特定的用户颜色

【问题讨论】:

    标签: javascript google-sheets


    【解决方案1】:

    您可能想试试这个。如果部分不清楚,请告诉我,我会给你更多细节。

    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');
        }
      }
    }

    【讨论】:

    • 这是一种更简洁的编写方式。我真的很陌生。谢谢你的帮助。唯一的问题是当我尝试运行它时出现“无法读取属性”范围“”错误。你知道这是为什么吗?
    • 它说在第 2 行
    • 明确一点,此函数不需要(不能)作为独立函数运行,当您的工作表发生更改时它会自动运行。因此,您需要对“Sheet1”的第一列进行更改并查看颜色变化。
    • 谢谢伙计。你帮了我很多。我设法让它以某种方式工作
    猜你喜欢
    • 1970-01-01
    • 2020-12-25
    • 2021-03-23
    • 1970-01-01
    • 1970-01-01
    • 2015-08-30
    • 2012-12-05
    • 2013-06-15
    • 2017-09-17
    相关资源
    最近更新 更多