【发布时间】:2017-06-21 09:40:28
【问题描述】:
我有一个电子表格,其中包含一个调用 Web API 的自定义函数,如下所示:
function myFunction(value) {
var value = value
...
}
我在B列的不同单元格中这样调用这个函数:
=myFunction(A2)
=myFunction(A3)
=myFunction(A4)
...
因此值会根据 A 列的内容发生变化。
现在,我想用触发器更新所有这些函数,触发器可以是每分钟、每小时或午夜。我在 Google Apps 脚本界面上使用了内置触发器,就像我过去使用外部脚本所做的那样,但它不起作用(我认为是因为触发器调用了没有“值”变量的函数)。 我正在考虑添加一个外部触发脚本来更新另一个单元格的值(假设“C1”),然后使用 onEdit 函数来更新自定义函数。我搜索了很多关于 onEdit 的内容,但我真的不明白如何使它适用于我的情况。 onEdit 函数是否应该调用 myFunction?以什么方式?
感谢您的帮助,谢谢
【问题讨论】:
-
这不适用于自定义函数;他们不会重新计算,因为他们的输入没有改变,并且他们基本上假设他们是确定性的。您可以让他们采用一个虚拟参数,该参数是一个带有随机数的单元格,您的计划触发器将填充该参数,然后强制自定义函数重新计算。
-
好的,谢谢。我以这种方式更改了函数:
function myFunction(value, now) { var value = value var now = data.getRange('a1').getValue(); //a cell with =now() formula ... }我应该在包含自定义函数的每个单元格中调用“now”参数吗?
标签: google-apps-script google-sheets