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

如何使用代码将Google表单回复自动同步到Sheets对应日期工作表

Google表单提交自动同步到对应日期工作表解决方案

直接使用Google Sheets绑定的Google Apps Script即可实现全自动同步,无需手动操作,具体步骤如下:

操作步骤

  1. 前置准备
    确认所有日期工作表的表头与表单响应默认存储的总工作表(通常命名为「表单回应 1」)表头完全一致,同时日期工作表的名称必须和表单中提供的日期选项完全匹配(包括空格、日期格式都不能有差异)。

  2. 打开脚本编辑器
    打开绑定了表单的Google Sheets,点击顶部菜单栏「扩展程序」→「Apps 脚本」,删除编辑器中默认的空白代码,粘贴下方代码:

// 表单提交时触发的函数
function onFormSubmit(e) {
  // 配置项:请根据自己的表格修改以下参数
  const DATE_COLUMN_INDEX = 2; // 报名日期字段在总表中的列索引,A列是0,B列是1,以此类推
  const DATE_SEPARATOR = ", "; // 多选日期的分隔符,根据表单实际设置修改,比如是逗号、顿号等
  const RESPONSE_SHEET_NAME = "表单回应 1"; // 存储所有表单提交数据的总表名称

  // 获取总表和最新提交的行数据
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const responseSheet = ss.getSheetByName(RESPONSE_SHEET_NAME);
  const latestRow = responseSheet.getLastRow();
  const latestData = responseSheet.getRange(latestRow, 1, 1, responseSheet.getLastColumn()).getValues()[0];

  // 提取用户选择的所有报名日期
  const selectedDates = latestData[DATE_COLUMN_INDEX].split(DATE_SEPARATOR).map(date => date.trim());

  // 遍历每个日期,同步到对应工作表
  selectedDates.forEach(date => {
    const targetSheet = ss.getSheetByName(date);
    // 只在对应日期工作表存在时插入数据
    if (targetSheet) {
      targetSheet.appendRow(latestData);
    }
  });
}
  1. 配置触发规则
    在Apps Script编辑器左侧点击「触发器」(闹钟形状图标),点击「添加触发器」,按以下参数配置:
  • 选择要运行的函数:onFormSubmit
  • 选择部署版本:表头
  • 选择事件来源:电子表格
  • 选择事件类型:表单提交时
    保存后按照页面提示完成权限授权即可,遇到Google「未验证应用」提示时,点击「高级」→「前往[你的项目名称]」即可继续授权。
  1. 功能验证
    提交一条测试表单数据,选择1个或多个报名日期,查看对应日期工作表是否自动新增了提交数据即可。

可选优化项

  • 如需避免重复插入数据,可以在代码中增加提交时间、用户邮箱的唯一性校验逻辑
  • 如需批量处理历史提交的表单数据,可以补充单独的历史数据遍历函数批量执行
  • 如果需要删除总表数据时同步删除对应日期工作表的数据,可以额外添加 onChange 触发器实现对应逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 05:15:04