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

使用App Script根据其他列内容修改指定列值的问题

解决方案

修正后的代码

function onEdit(e) {
  // 仅通过表格编辑触发,手动运行会报错
  if (!e) throw new Error("请通过编辑表格触发此函数,不要手动运行");
  
  const sheet = e.source.getActiveSheet();
  // 只处理名为'Sheet8'的工作表
  if (sheet.getName() !== 'Sheet8') return;
  
  const editedCol = e.range.getColumn();
  const editedRow = e.range.getRow();
  
  // 仅监控B列(2)和C列(3)的编辑,跳过表头行
  if ((editedCol !== 2 && editedCol !== 3) || editedRow <= 1) return;
  
  // 获取当前行B、C列的值
  const bValue = sheet.getRange(editedRow, 2).getValue();
  const cValue = sheet.getRange(editedRow, 3).getValue();
  
  // 任意一列是'Rejected'时,将A列设为'Inactive'
  if (bValue === 'Rejected' || cValue === 'Rejected') {
    sheet.getRange(editedRow, 1).setValue('Inactive');
  }
}

代码说明

  • 用onEdit简单触发器,表格编辑时自动触发,无需额外配置
  • 限定仅处理'Sheet8',避免影响其他工作表
  • 只监控B、C列的编辑操作,跳过表头行(行1)
  • 检查当前行的B、C列值,只要其中一个为'Rejected',就同步修改对应行的A列状态
  • 保留员工编辑A列的权限:仅当B/C列触发条件时才自动修改A列,其余场景员工可自由编辑A列内容

原代码问题分析

  • 仅监控了B列,未覆盖C列的编辑场景
  • 依赖getActiveCell(),仅能处理当前选中的单个单元格,批量编辑时无法触发逻辑
  • 未限定工作表范围,编辑其他工作表时也会执行代码

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 08:35:26