如何在Google Apps Script中实现含数值比较逻辑的onEdit函数?
满足需求的Google Apps Script代码
function onEdit(e) { const range = e.range; const oldValue = e.oldValue; const newValue = e.value; // 首次输入无旧值,直接跳过 if (!oldValue) return; // 转成数字避免字符串比较误差 const oldNum = Number(oldValue); const newNum = Number(newValue); // 非数字内容不处理 if (isNaN(oldNum) || isNaN(newNum)) return; if (newNum > oldNum) { // 新值大于旧值:设置背景和文本为红色(文本设为白色是为了提升可读性,可自行修改) range.setBackground("#ff0000") .setFontColor("#ffffff"); } else if (newNum < oldNum) { // 新值小于旧值:设置背景和文本为蓝色 range.setBackground("#0000ff") .setFontColor("#ffffff"); } else { // 值不变时重置样式(可选,不需要可删除这段) range.setBackground(null) .setFontColor(null); } }
关键说明
- 依赖Google Apps Script的
onEdit简单触发器,编辑单元格时自动触发 - 仅处理有旧值的编辑操作,首次输入不触发样式变更
- 强制转换为数字比较,避免"10"<"2"这类字符串比较错误
- 样式可自定义:替换颜色代码即可,若要文本颜色和背景色一致,修改
setFontColor的参数即可
内容的提问来源于stack exchange,提问作者iXanderM
相关产品推荐
相关产品推荐

