You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google表单提交匹配特定答案触发Google Sheet发邮件失效问题咨询

问题原因

你当前写的逻辑是适配「On edit」触发器的,「On form submit」触发器的事件对象结构和编辑触发器完全不同:表单提交时是整行写入新数据,不会单独触发某一列的编辑事件,所以e.range.getColumn()==6的判断永远不成立,脚本不会执行后续发信逻辑,自然没有效果也不会报错。

修复后的代码
function sendEmailapproval(e) {
  // 表单提交事件的e.values为按列顺序排列的数组,A列对应索引0,F列对应索引5
  const campusCode = e.values ? e.values[5] : '';
  if(campusCode == 'OAAd'){
    const emailRange = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Email Addresses").getRange("B3");
    const recipient = emailRange.getValue();
    const html = HtmlService.createTemplateFromFile("Email1.html");
    const htmlText = html.evaluate().getContent();
    const subject = "New Change Log Request Post 16";
    const body = "";
    const options = { htmlBody: htmlText }
    MailApp.sendEmail(recipient, subject, body, options)
  }
}
注意事项
  • 替换代码后请删除原有「On form submit」触发器,重新创建一次新的表单提交触发器,触发对象选择当前的电子表格,事件类型选择「表单提交时」
  • 测试时请直接提交表单验证效果,不要在脚本编辑器直接运行函数(直接运行不会传入事件对象e,会报错)
  • 如果后续你调整了表格的列顺序,校区编码不在F列了,需要对应修改e.values[5]里的索引值,索引=列数-1
  • 后续新增其他校区规则时,只需要在if判断后新增else if分支,匹配对应校区编码即可

内容的提问来源于stack exchange,提问作者Edwin B

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 06:51:03