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

绑定表单的onFormSubmit脚本无法复制重命名表格求助

问题分析与修正方案

核心错误点

1. 事件对象调用错误(第一个失效脚本)

表单提交触发器的事件参数e中,当前提交的响应数据需通过e.response.getItemResponses()获取,而非e.getResponses()。此外,字段索引从0开始,需与你的表单实际字段顺序严格对应,你之前使用的[1]、[2]等索引可能对应错误的字段。

2. 错误获取历史响应(第二个尝试脚本)

form.getResponses()会返回表单的所有历史提交记录,取formResponses[1]得到的是第二条历史提交数据,并非触发脚本的当前提交内容,完全不符合需求。

修正后的脚本

function onFormSubmit(e) {
  // 获取当前提交的所有字段响应列表
  const itemResponses = e.response.getItemResponses();
  
  // 按表单实际字段顺序取值(索引从0开始,需根据你的表单调整)
  const teacherEmail = itemResponses[0].getResponse(); // 示例:第1个字段是邮箱
  const teacherLastName = itemResponses[1].getResponse(); // 示例:第2个字段是姓氏
  const teacherFirstName = itemResponses[2].getResponse(); // 示例:第3个字段是名字
  const teacherNum = itemResponses[3].getResponse(); // 示例:第4个字段是教师编号
  
  const teacherFullName = teacherLastName + teacherFirstName;
  
  // 复制并重命名文件
  const targetFolder = DriveApp.getFolderById('1ARnOku-h49TAZytmEGSnckAKaoMZqffQ');
  const sourceFile = DriveApp.getFileById('1_uHtcG-qLEeETGNbhRA4WNwQYcaltXbAtxgupYQNWLY');
  sourceFile.makeCopy(`${teacherFullName}-Registration-FallFestival`, targetFolder);
}

关键注意事项

  • 确认触发器绑定:确保你的onFormSubmit函数已绑定到表单(或关联表格)的On form submit触发器,函数名与触发器绑定的名称完全一致。
  • 核对字段索引:在Apps Script编辑器中添加console.log(itemResponses),执行测试提交后查看日志,确认每个字段的索引与代码中的取值对应。
  • 权限验证:确保脚本拥有Drive和表单的访问权限(首次运行时会提示授权)。

内容的提问来源于stack exchange,提问作者Kevin Guess

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 18:23:11