Javascript 谷歌电子表格中的实时更新

Javascript 谷歌电子表格中的实时更新,javascript,google-sheets,Javascript,Google Sheets,我得到了以下JS代码: function sumWithoutColor(range) { var sheet = SpreadsheetApp.getActive(); var range = sheet.getRange(range); var data = range.getValues(); var sum = 0.0; for (var r in data) { for (var c in data[r]) { var x = par

我得到了以下JS代码:

    function sumWithoutColor(range) {
  var sheet = SpreadsheetApp.getActive();
  var range = sheet.getRange(range);
  var data = range.getValues();

  var sum = 0.0;

  for (var r in data) {
    for (var c in data[r]) {
      var x = parseInt(r, 10) + 1;
      var y = parseInt(c, 10) + 1;
      var cell = range.getCell(x, y);
      if (cell.getBackground() == '#ffffff') {
        sum += parseFloat(data[r][c]) || 0.0;
      }
    }
  }

  return sum;
}
此代码仅汇总Google电子表格中的非彩色值:

绿色单元格contains=sumWithoutColor(“I3:I17”)。如您所见,此函数从单元格获取参数

当我在白色单元格中添加或删除数据,或绘制任何单元格时,绿色单元格不会更新,它包含以前的值


如何在添加/删除/修改白色单元格时更新此单元格

尝试将
=now()
放在工作表的某个地方,并在代码中毫无理由地引用它。甚至可能是一个无用的参数。这应该会让UDF变得不稳定,尽管我不确定在谷歌表单中改变颜色是否被认为是一种不稳定的行为;它不在Excel中。你好,吉普。谢谢你的回答!在文档中放置=now()无法工作:(是的,我试图在代码中引用它并将其用作参数,但这是不允许的;可能是因为google sheets不希望您使用易失性UDF。