Javascript 从.onFormSubmit运行的另一个脚本安装Google脚本可安装触发器.onFormSubmit

Javascript 从.onFormSubmit运行的另一个脚本安装Google脚本可安装触发器.onFormSubmit,javascript,forms,google-apps-script,google-sheets,google-forms,Javascript,Forms,Google Apps Script,Google Sheets,Google Forms,我有以下设置: 提交时,附在主控表上的表单将运行脚本,创建一个新的电子表格(从模板复制)和一个新表单(从头开始动态生成)。 然后,它将新表单作为提交目的地连接到新电子表格。 之后,我对新的电子表格进行了一些修改,并尝试通过运行以下命令安装触发器: function setTrigger() { var sheet = SpreadsheetApp.openById(NEW_SHEET_ID); ScriptApp.newTrigger('myFunction') .forSpreads

我有以下设置: 提交时,附在主控表上的表单将运行脚本,创建一个新的电子表格(从模板复制)和一个新表单(从头开始动态生成)。 然后,它将新表单作为提交目的地连接到新电子表格。 之后,我对新的电子表格进行了一些修改,并尝试通过运行以下命令安装触发器:

function setTrigger() {
  var sheet = SpreadsheetApp.openById(NEW_SHEET_ID);
  ScriptApp.newTrigger('myFunction')
 .forSpreadsheet(sheet)
 .onFormSubmit()
 .create();
}
该函数在日志中报告完全成功

但当我查看新电子表格的脚本编辑器时,对于“当前项目的触发器”,我没有看到任何内容

当我查看“所有您的触发器”时,我可以看到myFunction被设置为run.onFormSubmit,但显然我无法理解它附加到哪个脚本/工作表

如果我尝试提交新表单,它会被提交到新工作表,但不会触发.onFormSubmit事件

我尝试从独立脚本手动运行相同的触发器集函数,但结果相同


我不知所措。我错过什么了吗?或者它是一个bug?

您能发布您的myFunction吗?该函数假定在表单提交到另一个工作表时运行?我这样问是因为它可能访问了错误的工作表来运行它的功能?@JackBrown,“myFunction”只处理将表单提交中的数据复制和重新格式化到同一电子表格中的另一个工作表,所以这不是问题。我试着用Logger.log运行它,但仍然没有被触发。嗯。。任何回答你部分问题的方法。新的电子表格在当前项目下没有触发器,因为该脚本编辑器中没有用于创建触发器的项目。设置的触发器将由不同电子表格(即不同项目)上的不同脚本运行。所以这是一种正常的行为。所以本质上,如果你有多个表单,当表单在其中任何一个表单上提交时,所有表单都会(或应该)触发相同的“myfunction”。您可以尝试使用新创建的表单设置onFromSubmit()forForm,这可能是一个可行的替代解决方案。@Jack,这是文档中的引用“例如,独立脚本可以通过调用TriggerBuilder.ForPreadSheet(键)以编程方式为任意Google Sheets文件创建可安装的触发器”也许我理解错了,但我不明白上面的问题怎么会是“正常行为”。我尝试为新创建的表单执行此操作,但没有任何效果。似乎它可能与权限以及创建文件和触发器的进程有关。