我有一个脚本,用于在提交Google表单时运行函数,并且在google电子表格中添加了一个新行。遗憾的是,它无法触发。没有报告错误,也没有收到通知电子邮件。该函数在手动执行时有效,并在提交表单时按预期将新行添加到电子表格中。
我已经通过资源选项卡安装了触发器,以便在电子表格上有事件时运行onFormSubmit()。我试过onChange和onFormSubmit,都没有反应。当我手动编辑电子表格时,on edit触发器按预期工作。它应该运行的简单函数如下所示。
function onFormSubmit() {
Browser.msgBox("Success")
}如有任何建议,我们将不胜感激,谢谢。
发布于 2018-04-15 07:32:41
我很好奇到底发生了什么,所以我就做了个测试。
我没有收到错误消息或通知电子邮件,但执行脚本显示脚本已被触发
[18-04-14 18:20:35:056 CDT] SpreadsheetApp.getActiveRange() [0 seconds]
[18-04-14 18:20:35:056 CDT] Range.getRow() [0 seconds]
[18-04-14 18:20:35:056 CDT] Range.getLastRow() [0 seconds]
[18-04-14 18:20:35:057 CDT] Range.getColumn() [0 seconds]
[18-04-14 18:20:35:057 CDT] Range.getLastColumn() [0 seconds]
[18-04-14 18:20:35:057 CDT] SpreadsheetApp.getActiveSpreadsheet() [0 seconds]
[18-04-14 18:20:35:151 CDT] Starting execution
[18-04-14 18:20:35:158 CDT] Browser.msgBox([Success]) [0 seconds]
[18-04-14 18:20:35:160 CDT] Execution succeeded [0.002 seconds total runtime]在我的测试中,我将电子表格和表单并排放在一起。没有显示对话框。
解释是,由可安装触发器触发的脚本实例不知道用户是否已打开电子表格(浏览器仅在Google电子表格上下文中可用)。
如果目的是在收到表单提交时向用户显示一个对话框,则需要一个类似于on the Mogsdad's answer to How do I make a Sidebar display values from cells?中所描述的“轮询器”
发布于 2014-07-09 14:49:55
看起来你不能对表单使用Browser.msgBox()。
在触发器函数内部,调用Logger.log(“函数被调用”)
您将看到在日志中调用了该函数。
FormApp.getUi().alert("hello")将在表单编辑器中创建一个消息框,但不会创建活动表单。
https://stackoverflow.com/questions/24633988
复制相似问题