You need to enable JavaScript to run this app. 表单提交时如何自动将Google表单最新响应行复制到另一工作表末行
优惠活动
大模型
产品
解决方案
定价
更多

表单提交时如何自动将Google表单最新响应行复制到另一工作表末行

实现表单提交自动触发复制的操作步骤

一、配置自动触发触发器

按以下步骤操作即可完成触发器配置,无需修改现有代码就能实现表单提交自动运行复制功能:

  • 打开你正在使用的Google Sheets文件,点击顶部菜单栏的「扩展程序」→「Apps 脚本」,进入脚本编辑页面
  • 在脚本编辑器左侧导航栏点击「触发器」(闹钟形状的图标),进入触发器管理页
  • 点击页面右下角的「添加触发器」按钮,在弹出的配置窗口中按如下参数选择:
    • 选择要运行的函数:copy
    • 选择要运行的部署:保持默认的Head即可
    • 选择事件来源:电子表格
    • 选择事件类型:表单提交时
  • 其余配置保持默认,点击「保存」,按页面提示完成账号权限授权
  • 授权时如果出现「Google尚未验证此应用」的提示,点击「高级」→「继续前往[你的脚本名称]」即可,这是个人开发脚本的正常提示,无安全风险

二、(可选)优化代码提升同步稳定性

你当前使用的代码逻辑是每次运行都取表单响应表的最后一行复制,该逻辑在短时间内有多个用户同时提交表单时,有小概率出现复制错行的问题。你可以替换为以下适配触发器事件对象的代码,直接获取新提交的响应数据,稳定性更高:

function copy(e) {
  // 直接通过触发器事件对象获取新提交的行数据
  const newResponse = e.values;
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const targetSheet = ss.getSheetByName("targetsheet");
  const emptyRow = targetSheet.getLastRow() + 1;
  // 写入数据到目标表
  targetSheet.getRange(emptyRow, 1, 1, newResponse.length).setValues([newResponse]);
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 08:00:00