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

Google Apps Script实现横向复选框单选功能及新增行适配

实现Google Sheets O/P列多行互斥复选框(支持新插入行)

问题分析

你现有的代码仅针对固定单元格O5、P5生效,要实现多行支持且适配新插入行,需要修改为基于列号和行号的动态逻辑,不再依赖固定单元格地址。

修改后的代码

function onEdit(e) {
  const sheet = e.source.getActiveSheet();
  // 仅处理"Planning"工作表
  if (sheet.getName() !== "Planning") return;

  const range = e.range;
  const col = range.getColumn();
  const row = range.getRow();

  // 仅响应O列(列号15)或P列(列号16)的复选框选中操作
  if (![15, 16].includes(col) || !range.isChecked()) return;

  // 定位同一行的另一列复选框
  const targetCol = col === 15 ? 16 : 15;
  const targetRange = sheet.getRange(row, targetCol);

  // 若目标复选框处于选中状态,取消选中
  if (targetRange.isChecked()) {
    targetRange.uncheck();
  }
}

代码说明

  • 动态适配所有行:通过列号(O=15,P=16)判断编辑位置,不管是现有行还是新插入的行,只要在O/P列操作就会触发逻辑
  • 精准触发条件:仅当复选框被选中时才执行取消操作,避免误触发
  • 高效定位目标:根据当前编辑的列,自动计算同一行的另一列位置,无需硬编码单元格地址

前置准备

  1. 选中O列和P列,右键选择「数据验证」
  2. 类型选择「复选框」,按需设置勾选/未勾选的值,完成后整列都会添加复选框
  3. 打开Google Sheets的「扩展」>「Apps脚本」,粘贴上述代码并保存

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 05:07:16