Google Sheets复选框触发指定行数据自动填充至目标单元格的实现问询
解决Google Sheets复选框触发数据填充问题
直接给你可运行的脚本和操作步骤:
操作步骤
- 打开你的Google Sheets,点击顶部菜单栏的「扩展程序」>「Apps Script」,进入脚本编辑器。
- 删除默认的
myFunction,粘贴下面的代码:
function onEdit(e) { // 获取触发编辑的单元格 const editedRange = e.range; const sheet = editedRange.getSheet(); // 只处理A列的复选框,且勾选状态为true的情况 if (editedRange.getColumn() === 1 && editedRange.getValue() === true) { const targetRow = editedRange.getRow(); // 这里对应你例子中的A20,可根据需要修改行号 if (targetRow === 20) { // 获取B20、C20、D20的值 const valueB = sheet.getRange(targetRow, 2).getValue(); const valueC = sheet.getRange(targetRow, 3).getValue(); const valueD = sheet.getRange(targetRow, 4).getValue(); // 将值分别写入C9、C11、C13 sheet.getRange(9, 3).setValue(valueB); sheet.getRange(11, 3).setValue(valueC); sheet.getRange(13, 3).setValue(valueD); } } }
代码说明
onEdit是Google Sheets内置的简单触发器,编辑单元格时自动触发。- 先判断编辑的是A列(
getColumn() === 1)且复选框被勾选(getValue() === true)。 - 针对指定行(例子中是20行)提取对应列的数据,再写入目标单元格。
测试与注意事项
- 保存脚本(给它起个名字,比如「CheckboxFillData」),首次运行会要求授权,按提示完成即可。
- 如果需要支持多行复选框,只需要复制
if (targetRow === 20) {...}这段,修改行号和对应的目标单元格就行。 - 确保你的复选框确实在A列对应行,目标单元格位置和需求一致。
内容的提问来源于stack exchange,提问作者user20403203
相关产品推荐
相关产品推荐

