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列操作就会触发逻辑
- 精准触发条件:仅当复选框被选中时才执行取消操作,避免误触发
- 高效定位目标:根据当前编辑的列,自动计算同一行的另一列位置,无需硬编码单元格地址
前置准备
- 选中O列和P列,右键选择「数据验证」
- 类型选择「复选框」,按需设置勾选/未勾选的值,完成后整列都会添加复选框
- 打开Google Sheets的「扩展」>「Apps脚本」,粘贴上述代码并保存
内容的提问来源于stack exchange,提问作者Jarvis Davis
相关产品推荐
相关产品推荐

