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

Google Sheets Apps Script onEdit触发器报错及特定行列触发需求咨询

问题解决:Google Sheets onEdit触发器报错及逻辑修正

错误原因

TypeError: Cannot read properties of undefined (reading 'source') 出现的核心原因:

  • onEdit 是简单触发器,仅当用户手动编辑工作表时,系统才会自动传入事件对象 e。若直接在脚本编辑器中手动运行该函数,e 会是 undefined,导致无法读取 e.source。
  • 原代码存在冗余判断,且未添加目标行(第11行)的限制逻辑。

修正后的代码

function onEdit(e) {
  // 校验事件对象是否存在,避免手动运行报错
  if (!e) {
    throw new Error("请通过编辑工作表触发此函数,不要手动运行");
  }
  
  var hojaActual = e.source.getSheetByName("Duplicado");
  // 确认当前编辑的是目标工作表
  if (!hojaActual) return;
  
  var celdaActiva = e.range;
  var filaActiva = celdaActiva.getRow();
  var colActiva = celdaActiva.getColumn();
  
  // 仅在第11行、目标列(33/45/47)编辑时触发
  if (filaActiva === 11 && (colActiva === 33 || colActiva === 45 || colActiva === 47)) {
    webScraping11(hojaActual, filaActiva);
  }
}

关键修改点

  • 新增 if (!e) 校验:防止手动运行函数时抛出错误,同时给出明确提示。
  • 移除冗余的 hojaActual.getName() === "Duplicado" 判断:getSheetByName 已确保返回目标工作表,无需重复验证。
  • 添加 filaActiva === 11 条件:严格限制仅在第11行编辑目标列时才触发 webScraping11。

注意事项

  • 不要手动运行 onEdit 函数,必须通过在「Duplicado」工作表的第11行AG/AS/AU列输入内容触发。
  • 确保 webScraping11 函数能正确接收 hojaActual(工作表对象)和 filaActiva(行号)参数并执行逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 22:50:12