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

Google Sheets勾选复选框移动行至目标工作表代码故障排查

解决Google Sheets复选框触发行移动的脚本问题

问题根源

你的脚本没生效的核心原因是复选框的e.value判断错误:Google Sheets中勾选复选框时,e.value返回的是布尔值TRUE,而非你代码里写的字符串"Done"。这个错误条件导致后续的range读取、写入操作完全没触发。

修正后的完整代码

function onEdit(e) {
  const checkboxColumn = 1; // 复选框所在的A列
  const sourceSheet = e.range.getSheet();
  
  // 仅在BASE LIST的A列复选框被勾选时执行逻辑
  if (sourceSheet.getName() === "BASE LIST" && e.range.columnStart === checkboxColumn && e.value === "TRUE") {
    // 获取当前勾选行的所有数据
    const rowValues = sourceSheet.getRange(e.range.rowStart, 1, 1, sourceSheet.getLastColumn()).getValues();
    // 定位目标工作表
    const destSheet = e.source.getSheetByName("DESTINATION LIST");
    // 将数据插入目标表的最后一行下方
    destSheet.getRange(destSheet.getLastRow() + 1, 1, rowValues.length, rowValues[0].length).setValues(rowValues);
    // 删除源表中的该行
    sourceSheet.deleteRow(e.range.rowStart);
  }
}

补充提示

  • 如果需要支持取消复选框时把行移回原表,可以添加else if (e.value === "FALSE")的分支逻辑
  • 建议给两张表的表头设置保护,防止操作时误删表头
  • 若后续数据量变大,可改用getDataRange()配合数组操作来提升性能,当前小数据量场景下现有逻辑足够用

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 20:35:24