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

谷歌表单响应存储至多表格:现有方案执行报错求助

谷歌表单响应同步至多份表格时的报错排查与修复

问题背景

参考Stack Overflow相关方案实现谷歌表单响应存储到多个电子表格,但运行时触发错误。

使用代码

function copyFormResponses(e)
{
  let ss = SpreadsheetApp.openByUrl("Sheet_URL").getSheetByName("SheetName");
  let range = e.range;
  let values = e.values;
  let lastRow = ss.getLastRow();
  for(let i=1; i<=values.length; i++)
  {
      ss.getRange(lastRow+1,i).setValue(values[i-1]);
  }
}

报错信息

Error: TypeError: Cannot read properties of null (reading 'getLastRow')
at copyFormResponses(Test_Transfer:6:20)

触发器配置

手动在Apps Script中创建的触发器,配置如下:
触发器配置截图

报错原因与修复

原因分析

报错提示Cannot read properties of null (reading 'getLastRow'),说明代码中ss变量为null——也就是要么无法通过指定URL打开目标表格,要么找不到指定名称的工作表。

修复步骤

  1. 验证目标表格URL与权限

    • 确认代码中Sheet_URL替换为了目标表格的完整、正确URL,复制时不要遗漏字符或多带参数
    • 用当前账号手动打开该URL,确保有权限访问(能查看、编辑表格)
  2. 核对工作表名称

    • 确认SheetName与目标表格中的工作表名称完全一致,包括大小写、空格、特殊字符(比如原工作表叫"客户反馈"就不能写成"客户 反馈")
  3. 优化代码(可选但推荐)
    原代码循环写入单元格效率较低,且无错误处理,建议替换为更健壮的版本:

function copyFormResponses(e) {
  // 替换为你的目标表格URL和工作表名称
  const targetSheetUrl = "https://docs.google.com/spreadsheets/d/xxx...";
  const targetSheetName = "表单响应副本";

  try {
    // 打开目标表格并获取工作表
    let targetSpreadsheet = SpreadsheetApp.openByUrl(targetSheetUrl);
    let targetSheet = targetSpreadsheet.getSheetByName(targetSheetName);
    
    // 检查工作表是否存在
    if (!targetSheet) {
      throw new Error(`未找到名为【${targetSheetName}】的工作表`);
    }

    // 检查表单响应数据是否有效
    let responseValues = e.values;
    if (!responseValues || responseValues.length === 0) {
      throw new Error("未获取到有效的表单响应数据");
    }

    // 直接追加整行数据,效率更高
    targetSheet.appendRow(responseValues);
  } catch (error) {
    // 打印错误日志,方便排查
    console.error("同步表单响应失败:", error.message);
    // 可选:添加邮件提醒,及时知晓错误
    // MailApp.sendEmail("你的邮箱@xxx.com", "表单同步失败通知", error.message);
  }
}

触发器说明

从截图看,触发器配置为"表单提交时运行"是正确的,修复代码后即可正常触发执行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 20:11:22