我有一个简单的代码,如下所示:
function setValue() {
var col = "E";
var sh = SpreadsheetApp.getActiveSpreadsheet();
var values = sh.getRange("Sheet2!"+col+"1:"+col).getValues()
var ct = 0;
while ( values[ct][0] != "" ) {
ct++;
}
ct++;
sh.getRange(col+ct).setValue(Math.floor((Math.random() * 10) + 1));
};
这样做是在 E 列上循环以查找第一个空行,并在其中放置一个随机值。这仅用于测试目的,如果我手动触发该功能,则工作正常。当我在
脚本编辑器...... - >资源 - >所有触发器 - >时间驱动 - >分钟计时器
甚至放置此代码:
ScriptApp.newTrigger("setValue")
.timeBased()
.after(1 * 60 * 1000)
.create();
假设在1分钟后的某个时间内触发该功能。这些都不起作用,我无法弄清楚原因。是否有其他方法可以每分钟启动此功能?由于该函数也会触发 on change (但这只是一种解决方法),是否有一个脚本在工作表上产生 on change 效果,最终将触发此功能?
最好的问候!!
答案 0 :(得分:1)
将函数命名为setValue()以外的函数,因为这已经是API中的方法名称,这可能会使编译器感到困惑。
您应该可以使用触发菜单,我刚刚更改了函数名后您的代码就更新了。
BTW如果你想以编程方式进行操作,你需要everyMinutes()方法。
ScriptApp.newTrigger("myFunction")
.timeBased()
.everyMinutes(1)
.create();
如果您希望在电子表格发生变化时触发此功能,您只需使用
function onEdit(e) {
myfunction();
}