我正在玩触发器 .
在电子表格中,我有一个在新行中插入日期的函数 . 每分钟作为时钟触发器运行 . 如果电子表格是打开或关闭(喜欢该部分),则工作正常 .
在独立脚本中,我在上面的电子表格中为onEdit设置了一个触发器 . 它只是给我发电子邮件e.value .
如果我在电子表格中并且只输入单元格中的某些字符,它就可以工作 .
我所期望的是每次第一次触发器插入日期时,它都会触发onEdit . 唉,事实并非如此 . 即使我在触发器之外运行插入日期函数,我的电子邮件onEdit触发器也不会触发 .
有什么想法吗?
我问,因为我的目标是让脚本更新一个启动onEdit事件的工作表 .
吉姆
更新#1:
也许这个代码示例有帮助?
我将其简化为电子表格容器中的一个脚本 . 如果我对电子表格进行任何交互式更改,则每个函数都可以自行运行,第二个函数可以正常工作 .
这只是探索,所以请忽略配额或我在这里测试的完全废话:-)
insertClockTrigger:每分钟运行,运行正常
installableOnEdit:当insertClockTrigger触发时,从不作为可安装的onEdit触发
我很好奇为什么看起来像insertClockTrigger完成的编辑没有触发onEdit触发器 . 触发器不会触发触发器(无法帮助自己!)?
function insertClockTrigger() {
var sheet = SpreadsheetApp.openById('spreadsheet-ID').getSheets()[0];
var nDate = new Date();
sheet.getRange(sheet.getLastRow()+1,1,1,1).setValue(nDate).flush;
}
function installableOnEdit(e) {
GmailApp.sendEmail("some@email.com", "Test trig2", "FISH: "+e.value);
}
3 回答
从时钟触发功能调用onEdit函数 .
此外,您可能会遇到每分钟运行此类触发器的配额问题 .
我想我找到了答案 .
Henrique Abreu发布:
http://productforums.google.com/d/msg/apps-script/HmBg0p7dOZ8/xMb6wfcfvVQJ
应该将onEdit重命名为onUserEdit . 它没有测试过这个,但
onChange
可能会做你想要的 .