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

基于条件锁定Google Sheets单元格/区域的Apps Script实现需求

实现Google Sheets单元格变色自动锁定功能

以下是完整的Apps Script代码,可实现当单元格填充色改为红色时自动锁定,仅指定用户可编辑:

function onEdit(e) {
  // 获取触发编辑的单元格
  const editedCell = e.range;
  const sheet = editedCell.getSheet();
  
  // 定义红色的十六进制颜色码(可根据实际使用的红色调整)
  const targetColor = "#ff0000";
  
  // 检查当前单元格背景色是否为目标红色
  if (editedCell.getBackground() === targetColor) {
    // 创建该单元格的保护规则
    const protection = editedCell.protect().setDescription("已锁定(红色填充)");
    
    // 移除所有默认编辑者(包括全员编辑权限)
    const editors = protection.getEditors();
    protection.removeEditors(editors);
    
    // 添加允许编辑的指定用户(替换为实际邮箱,多个用户用逗号分隔)
    const allowedUsers = ["user1@company.com", "user2@company.com"];
    protection.addEditors(allowedUsers);
    
    // 设置仅指定用户能修改保护规则
    protection.setDomainEdit(false);
    protection.setWarningOnly(false);
    
    // 可选:添加单元格备注提示
    editedCell.setNote("该单元格已锁定,仅指定管理员可编辑");
  }
}

代码说明

  • onEdit(e):Google Sheets内置的简单触发器,每次单元格被编辑时自动执行
  • targetColor:可根据实际使用的红色调整十六进制码(比如浅红为#ffcccc)
  • protection:创建单元格保护对象,先移除所有原有编辑者,再添加指定权限用户
  • setWarningOnly(false):设置为强制锁定,而非仅弹出警告

设置步骤

  1. 打开目标Google Sheets表格
  2. 点击顶部菜单栏「扩展程序」→「Apps Script」
  3. 删除默认的myFunction代码,粘贴上述完整代码
  4. 修改allowedUsers数组中的邮箱为公司指定的可编辑用户邮箱
  5. 点击脚本编辑器顶部「保存」按钮,给脚本命名(比如「CellLockOnColor」)
  6. 返回表格测试:编辑任意单元格并设置填充色为红色,该单元格会自动锁定

解锁方法

指定用户如需解锁单元格:

  1. 右键已锁定单元格,选择「保护范围」
  2. 在右侧面板点击「删除」移除保护,或添加其他编辑者
  3. 如需取消红色填充并解锁,需先移除保护再修改单元格颜色

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 21:10:28