首页 > 解决方案 > 重新计算工作表后是否正在执行 Google Sheet onEdit 触发器

问题描述

我有一个带有 onEdit 触发器的电子表格。A1 被其他单元格使用,例如 B1。

触发器“监听”A1 修改,然后获取B1 新值来执行其工作。

问题是它保证B1onEdit在被解雇时已经被重新计算过吗?例如:

单元格B1包含公式=A1+1

现在 1 被输入到A1

function onEdit(e){

  var changeRng  = e.range;

  if (changeRng.getA1Notation() == "A1") {
    //Read value from B2
    var b1 = SpreadsheetApp.getActive().getActiveSheet().getRange(1, 2).getValue();
  }

}

变量b1保证是2吗?

标签: google-apps-scriptgoogle-sheetstriggers

解决方案


IfonEdit()由编辑触发,则在触发之前A1没有B1完成重新计算的保证onEdit(),尤其是在重新计算B1时间密集的情况下。

我建议您在onEdit函数开始时合并一个Utilities.sleep()调用,以便在B1足够的时间内重新计算该值。


推荐阅读