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

Google Sheets同一工作表使用两个onEdit()函数仅单一生效求助

问题根因

Google Sheets的onEdit简单触发器仅会自动识别调用名称严格为onEdit的函数,你单独定义的onEdit2不会被编辑事件触发,这是合并后逻辑无法全部生效的核心原因。

修复后可用代码

将两个逻辑合并到同一个onEdit函数中即可,同时优化了重复校验逻辑,修正了原代码中逻辑运算符优先级的隐患:

function onEdit(event) {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var activeSheet = event.source.getActiveSheet();
  var editRange = event.source.getActiveRange();

  // 公共前置校验:仅处理General Maintenance表第9列的编辑操作
  if(activeSheet.getName() !== "General Maintenance" || editRange.getColumn() !== 9) {
    return;
  }

  var currentStatus = editRange.getValue();
  var editRow = editRange.getRow();
  var totalColumns = activeSheet.getLastColumn();
  var targetSheet = null;

  // 按状态匹配目标标签页
  if(currentStatus === "Resolved") {
    targetSheet = ss.getSheetByName("Completed");
  } else if(currentStatus === "On Hold" || currentStatus === "Waiting On Feedback") {
    targetSheet = ss.getSheetByName("On Hold / Awaiting Feedback");
  }

  // 匹配到目标页后执行移动逻辑
  if(targetSheet) {
    var targetPosition = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
    activeSheet.getRange(editRow, 1, 1, totalColumns).moveTo(targetPosition);
    activeSheet.deleteRow(editRow);
  }
}

部署说明

删除你原有代码中的两个onEdit、onEdit2函数,仅保留上述一个onEdit函数保存即可生效。后续如需新增其他状态的移动规则,直接在状态判断分支中新增对应配置即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 22:36:04