如何解决触发器有时不起作用,我不明白为什么
我需要你的帮助。
我有一个有效的谷歌表单供客户注册。 当我提交表单时,我有 3 个运行脚本的激活器,尤其是它们将意大利日期格式 (dd-mm-yyyy) 转换为美国 (yyyy-mm-dd)。
行动开始:提交表单后
我发现的问题是这个。 即使从控制面板中我发现这些脚本已正确执行而没有报告错误,这些脚本也并不总是有效。
代码示例:
function respondToFormSubmit() {
var ss = SpreadsheetApp.openById("xxxxxxxxxxxxxxxxxxxxxxxx");
var sheet = ss.getSheets()[0];
// Format column I
var column1 = sheet.getRange("F:F");
var column2 = sheet.getRange("J:J");
var column3 = sheet.getRange("K:K");
var column4 = sheet.getRange("A:A");
// Set new date format on column I
column1.setNumberFormat('yyyy-mm-dd');
column2.setNumberFormat('yyyy-mm-dd');
column3.setNumberFormat('yyyy-mm-dd');
column4.setNumberFormat('yyyy-mm-dd');
};
出现问题时,所有 3 个触发器都失败。 无法正常工作的发生率为 20/30%,这种不连续的“错误”并没有让我明白问题是什么。
你对我有什么建议吗? 非常感谢您的宝贵帮助。 毛罗
解决方法
您的脚本在触发器上运行的问题可能是传播 问题
将新的表单响应插入到 电子表格,因此您的数字格式功能可能会运行 在插入新行之前。
你可以做的一件事是在开始时实施一些等待时间 在函数中,例如和 sleep()。
但是,如果您将脚本绑定到目标电子表格
而不是表单本身 - 您将能够使用 Google
Sheets event
objects
对于 sudo apt install libsqlite3-dev
,其中包括 Form submit
。
示例用法:
range
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。