Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 可安装触发器onFormSubmit in Sheets模板不以copy开头_Google Apps Script_Google Sheets_Triggers_Google Forms - Fatal编程技术网

Google apps script 可安装触发器onFormSubmit in Sheets模板不以copy开头

Google apps script 可安装触发器onFormSubmit in Sheets模板不以copy开头,google-apps-script,google-sheets,triggers,google-forms,Google Apps Script,Google Sheets,Triggers,Google Forms,我正在创建一个GoogleSheets模板,该模板与GoogleForms配对,以创建表单响应之外的报告功能。我在google sheets模板中的一个脚本中有一个onFormSubmit()触发器。当一个新表单链接到图纸模板时,它将启动。问题在于,它似乎不是从GoogleSheets模板的副本开始的,也不是在第一次运行脚本时开始的。有什么见解吗?我已经研究了可安装触发器和简单触发器之间的区别,但没有找到明确的答案 function autoEmails() { var s = Sprea

我正在创建一个GoogleSheets模板,该模板与GoogleForms配对,以创建表单响应之外的报告功能。我在google sheets模板中的一个脚本中有一个
onFormSubmit()
触发器。当一个新表单链接到图纸模板时,它将启动。问题在于,它似乎不是从GoogleSheets模板的副本开始的,也不是在第一次运行脚本时开始的。有什么见解吗?我已经研究了可安装触发器和简单触发器之间的区别,但没有找到明确的答案

function autoEmails() {

  var s = SpreadsheetApp.getActive();
  var ss = s.getSheetByName("Report Builder 2");
  var emailOneOn = ss.getRange("K3").getValue();
  var emailOne = ss.getRange("J4").getValue();
  var emailTwoOn = ss.getRange("N3").getValue();
  var emailTwo = ss.getRange("M4").getValue();
  var responseOne = ss.getRange("I5").getValue();
  var responseTwo = ss.getRange("L5").getValue();


  /*Logger.log(emailOneOn);
  Logger.log(emailOne);
  Logger.log(emailTwoOn);
  Logger.log(emailTwo);
  */

  if(emailOneOn == "On" && emailTwoOn =="On") {
      GmailApp.sendEmail(emailOne,"New Request" , responseOne);
      GmailApp.sendEmail(emailTwo,"New Request" , responseTwo);
      Logger.log("Both On")    
    }

  else if(emailOneOn == "On") {
    GmailApp.sendEmail(emailOne,"New Request" , responseOne);
    Logger.log("One on")
  }

  else if(emailTwoOn == "On") {
    GmailApp.sendEmail(emailTwo,"New Request" , responseTwo);
    Logger.log("two on")
  }

  else{
    Logger.log("Both Off")

  }

}

function trigger() {

  var formId = FormApp.getActiveForm().getId();
  var form = FormApp.openById(formId);
  ScriptApp.newTrigger('autoEmails')
    .forForm(form)
    .onFormSubmit()
    .create();
}

当我单独运行
autoEmails()
函数时,其他所有功能都正常工作。谢谢你的帮助

onFormSubmit触发器是在用户提交表单时生成的。副本如何链接到表单?是的,我知道。将创建模板工作表并创建表单。然后,通过选择图纸模板作为响应目标,将表单链接到图纸。我的问题的一部分似乎是在附加表单后提取该表单的id。您好,您可以分享一个带有虚拟数据的表单和工作表的示例吗?我能够解决我遇到的问题。