如何触发引用单元格的onEdit事件?

时间:2012-12-20 03:02:46

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

我正在编写谷歌电子表格的谷歌应用程序脚本,但我遇到了一些问题。我尝试通过其值由其他单元格引用的单元格触发“onEdit”函数。但是,它似乎不能很好地工作。例如,A单元格的值由B单元格引用(A的值为“='B'”),如果我更改了B单元格的值,则单元格将相应更改,但无法触发onEdit函数一个细胞。我在想是否因为电子表格自动进行的更改不是触发onEdit函数的事件。

有人知道解决这个问题的其他解决方案吗?

提前致谢!

2 个答案:

答案 0 :(得分:3)

每次更新单元格时都会运行

onEdit(如您所愿)。使用上面的逻辑,是否可以在onEdit事件中设置检查以查看更改了哪个单元格,如果它是B,您是否可以做出A更改的逻辑假设还有吗?

function onEdit(event)
{
  // 'event' contains information about the edit that took place
  // Here, we read the 'source' and get the active range (our changed cell)
  // We then pull out the string form of the notation to get the cell that changed
  var changedCell= event.source.getActiveRange().getA1Notation();
  Browser.msgBox(changedCell)
  if (changedCell == 'B1') {
    // If the changed cell is the one that affects A, do something
    Browser.msgBox('You changed B1, and this will affect A');
  }
}

答案 1 :(得分:0)

正如您所提到的,onEdit将被触发为单元格B而不是单元格A.您可以使用它来读取单元格A,或者您可以每分钟触发一个函数来读取单元格A.