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

如何设置自定义触发器对比新旧值并执行函数?求可用GS代码

Google Apps Script实现单元格新旧值对比并设置格式

以下是可直接运行的代码,基于onEdit触发器实现你的需求:

function onEdit(e) {
  const range = e.range;
  const oldValue = e.oldValue;
  const newValue = e.value;

  // 过滤非数值编辑或无旧值的情况
  if (!oldValue || !newValue || isNaN(oldValue) || isNaN(newValue)) return;

  const numOld = Number(oldValue);
  const numNew = Number(newValue);

  // 新值大于旧值:设置背景和字体为红色
  if (numNew > numOld) {
    range.setBackground("red");
    range.setFontColor("red");
  }
  // 新值小于旧值:设置背景和字体为蓝色
  else if (numNew < numOld) {
    range.setBackground("blue");
    range.setFontColor("blue");
  }
  // 值未变化时恢复默认格式(可选,可删除此分支)
  else {
    range.setBackground(null);
    range.setFontColor(null);
  }
}

代码说明

  • 这是Google Sheets的简单触发器,单元格被编辑时自动触发,无需手动配置额外触发器(若需执行需授权的操作,比如跨文档修改,才需要创建安装型触发器)。
  • 事件对象e包含编辑关键信息:
    • e.range:被编辑的单元格
    • e.oldValue:编辑前的旧值
    • e.value:编辑后的新值
  • 先过滤非数值内容,避免无效触发;再对比新旧数值,按需求设置单元格背景(高亮)和字体颜色。

安装型触发器配置(如需权限时用)

如果后续逻辑需要执行需授权的操作,简单触发器权限不足,需手动创建安装型触发器:

  1. 打开脚本编辑器(工具 > 脚本编辑器)
  2. 点击左侧时钟图标进入触发器页面
  3. 点击「添加触发器」,设置:
    • 选择函数:onEdit
    • 部署类型:从电子表格
    • 事件类型:编辑时
  4. 完成授权即可生效

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 03:55:14