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

求Google Sheets可自定义配对的复选框模拟单选按钮互斥脚本

Google Sheets 成对复选框模拟单选互斥脚本

实现效果

  • 每组绑定的2个复选框单元格同一时间最多只能勾选1个,勾选其中任意一个时,同组另一个会自动切换为未勾选状态,true/false状态完全互斥
  • 配置逻辑完全和核心代码解耦:新增互斥配对只需要在配置区新增一行,直接填写配对单元格的A1格式位置(如A8、D9)即可生效,不需要写代码
  • 后续调整复选框位置、移除不需要的互斥组时,只需要修改、删除对应配置行即可,完全不需要改动脚本核心逻辑

部署步骤

  1. 打开需要添加功能的Google表格,点击顶部菜单栏「扩展程序」→「Apps 脚本」,打开在线脚本编辑器
  2. 清空编辑器里默认生成的空函数内容,粘贴下方提供的完整脚本代码
  3. 修改脚本开头配置区的参数,填写你需要的互斥单元格配对、对应工作表名称
  4. 点击编辑器顶部的保存按钮,按照弹窗提示给脚本授予必要权限,返回表格即可正常使用

完整脚本代码

// ====================== 配置区 仅修改此区域内容即可 ======================
// 互斥配对配置:每一行代表一组互斥的两个复选框,格式为["单元格1位置", "单元格2位置"]
// 新增配对直接复制一行按格式填写即可,删除配对直接删掉对应行
const MUTEX_CHECKBOX_PAIRS = [
  ["A2", "B2"],  // 示例:A2与B2复选框互斥
  ["A8", "D9"],  // 示例:A8与D9复选框互斥
  // 在此处继续添加你的配对配置
]
// 需要生效的工作表名称,必须和表格底部的工作表标签名完全一致
const ACTIVE_SHEET_NAME = "工作表1"
// 若需要禁止同组两个复选框都为空(即必须选一个),把下面参数改为true即可
const FORCE_SELECT_ONE = false
// ====================== 配置区结束 请勿修改下方代码 ======================

function onEdit(e) {
  if (!e) return;
  const currentRange = e.range;
  const currentSheet = currentRange.getSheet();
  if (currentSheet.getName() !== ACTIVE_SHEET_NAME) return;
  
  const editedCell = currentRange.getA1Notation();
  const editedValue = e.value;

  for (const pair of MUTEX_CHECKBOX_PAIRS) {
    const [cellA, cellB] = pair;
    if (editedCell !== cellA && editedCell !== cellB) continue;

    if (editedValue === "TRUE") {
      const targetCell = editedCell === cellA ? cellB : cellA;
      currentSheet.getRange(targetCell).setValue(false);
    }

    if (FORCE_SELECT_ONE && (editedValue === "FALSE" || editedValue === undefined)) {
      const targetCell = editedCell === cellA ? cellB : cellA;
      currentSheet.getRange(targetCell).setValue(true);
    }
  }
}

配置说明

  • 新增互斥组:在MUTEX_CHECKBOX_PAIRS数组中新增一行,按示例格式填入两个单元格的A1位置即可,比如新增["C3", "E5"]就代表C3和E5两个复选框互斥
  • 调整已有配对:直接修改对应配置行里的单元格位置,保存后立即生效
  • 移除配对:直接删除对应的配置行,不会影响其他配对的正常运行
  • 强制二选一:把FORCE_SELECT_ONE参数的值改为true后,同组两个复选框永远会保持一个选中的状态,取消勾选其中一个时会自动勾选另一个,完全模拟传统单选按钮的行为

注意事项

  • 脚本使用Google Sheets内置的简单触发器onEdit运行,不需要手动触发,编辑单元格时会自动执行,响应无延迟
  • 首次部署时的授权弹窗是Google官方安全流程,脚本不会上传任何表格数据,所有逻辑都在你自己的表格账号下运行
  • 配置单元格位置时请确保对应单元格已经提前插入了复选框,否则脚本不会生效

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 19:33:23