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

Google Sheets脚本需求:勾选复选框后删除指定单元格而非整行

修改后的Google Sheets脚本实现指定单元格删除并上移

直接替换你原来的脚本即可,实现勾选B列复选框时,仅删除对应行C-T列的单元格并让下方数据上移,V列不受影响:

function deleterowsifchecked() {
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const ws = ss.getSheetByName("The Ultimate To Do List");
  
  // 获取B列有效数据范围(仅到最后有内容的行)
  const lastRow = ws.getLastRow();
  const colBData = ws.getRange(1, 2, lastRow, 1).getValues();

  // 从下往上遍历,避免单元格上移后索引混乱
  for (let i = lastRow - 1; i >= 0; i--) {
    if (colBData[i][0] === true) {
      // 定位当前行C列到T列的区域(C是第2列,T是第19列,共18列)
      const targetRange = ws.getRange(i + 1, 2, 1, 18);
      // 删除该区域单元格,下方对应位置数据上移填补
      targetRange.deleteCells(SpreadsheetApp.DeleteShiftDirection.UP);
    }
  }
}

关键改动说明

  • 优化数据获取:原来的getRange("B:B")会包含整列空行,现在用getLastRow()只处理有内容的行,提升运行效率
  • 替换删除逻辑:把删除整行改成仅删除C-T列的指定区域,通过deleteCells(UP)实现下方单元格上移,完全不触动V列
  • 保留反向遍历:从最后一行往前处理,避免单元格上移后导致后续行的索引错位,确保所有勾选行都能被正确处理

使用方式:保存修改后的脚本,给工作表添加预制按钮并关联这个函数,点击按钮即可触发执行,不会自动运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 22:42:47