【问题标题】:How to identify changed cell in onChange function如何在 onChange 函数中识别更改的单元格
【发布时间】:2015-10-01 04:00:08
【问题描述】:

我正在尝试检测两个单元格的背景颜色变化。不久前,我创建了以下 Google 表格函数并将其添加为可安装的触发器从电子表格更改时,因为编辑时未检测到单元格颜色更改。我认为它有效,但我现在才检查它,它没有检测到哪个单元格的背景颜色发生了变化,有什么想法吗?

function onChangeInstallable(e) {

  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var activeSheet = ss.getActiveSheet();
  var activeSheetName = activeSheet.getSheetName();

  if (activeSheetName == "Settings") {

    if(e.changeType == "OTHER"){

      // makes it this far ok but following line returns
      // #REF! instead of A1 notation of changed cell.

      var editedRange = SpreadsheetApp.getActiveRange().getA1Notation();

      if (editedRange == 'B43' || editedRange == 'B44'){

        setBackgroundColors();

      }
    }
  }
}

还尝试了以下方法,但它返回“单元格引用超出范围”错误。

var editedRange = activeSheet.getActiveCell().getA1Notation();

【问题讨论】:

    标签: google-apps-script google-sheets triggers


    【解决方案1】:

    编辑:看来这个案子还是有问题的,star issue 3269 投票支持修复

    试试var editedRange = activeSheet.getActiveRange().getA1Notation();

    活动电子表格也已通过 e 对象传递到函数中,仅供参考。

    var ss = e.source;

    【讨论】:

    • 不幸的是,这也返回了#REF!感谢有关活动电子表格的信息已通过 e 传递到函数中。
    • 谢谢,我看到提交该报告的人提到它总是在我收到 #REF 时返回 A1!,如果该报告与我发布的内容相关,知道为什么我没有收到 A1 吗?
    • Bryan P 报告的问题已修复,但 onChange 再次中断。请为当前问题加注星标 -> 38159142
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-21
    • 1970-01-01
    • 2021-05-19
    • 1970-01-01
    • 2012-09-29
    • 2015-11-07
    • 1970-01-01
    相关资源
    最近更新 更多