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

Google Sheets按编辑者为单元格着色的onEdit脚本运行异常排查

问题原因
  • 条件判断误用赋值运算符
    你在if判断中使用了赋值符号=而非比较符号==/===。if (User1 = -1.0)的执行逻辑是直接将User1赋值为-1,赋值表达式的返回值为-1,在JavaScript中非零的数字会被判定为真值,因此两个if判断都会触发执行,后执行的#c9daf8颜色设置会覆盖之前的颜色,所以所有单元格最终都显示同一种颜色。
  • 邮箱匹配逻辑写反
    String.indexOf()方法匹配到目标字符串时会返回对应下标(你日志中User1返回0就代表匹配到了user1的邮箱),返回-1才代表未匹配到。你当前的逻辑是「未匹配到对应邮箱时设置对应颜色」,和需求完全相反。
修正后代码
function onEdit() {  
  var sheet = SpreadsheetApp.getActiveSheet();
  var email = Session.getActiveUser().getEmail();
  // 匹配到user1邮箱时设置对应颜色
  if (email.indexOf("user1@email.com") !== -1) {
    sheet.getActiveCell().setBackground('#f4cccc')
  }
  // 匹配到user2邮箱时设置对应颜色
  else if (email.indexOf("user2@email.com") !== -1) {
    sheet.getActiveCell().setBackground('#c9daf8')
  }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 11:12:03