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

编写Google Apps Script:删除勾选行及对应名称工作表

批量删除勾选行及对应工作表的Google Apps Script实现

以下是修改后的完整脚本,实现删除复选框勾选的行,同时删除名称匹配对应单元格值的工作表:

function deleteOldData() {
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const ws = ss.getSheetByName("INCOMING");
  const ui = SpreadsheetApp.getUi();

  // 获取复选框所在列(H列)和对应工作表名称的列(示例用A列,根据实际情况修改列范围)
  const dataRange = ws.getRange(1, 1, ws.getLastRow(), 8); // 覆盖A到H列
  const data = dataRange.getValues();

  const buttonPressed = ui.alert("WARNING: The following action is unrecoverable would you still like to execute?", ui.ButtonSet.YES_NO);

  if (buttonPressed == ui.Button.YES) {
    // 从下往上遍历,避免删除行导致索引错乱
    for (let i = data.length - 1; i >= 0; i--) {
      const isChecked = data[i][7]; // H列对应索引7
      if (isChecked === true) {
        const sheetName = data[i][0]; // 示例取A列值作为工作表名,根据实际列修改索引
        if (sheetName) {
          try {
            const targetSheet = ss.getSheetByName(sheetName);
            if (targetSheet) {
              // 防止删除最后一个工作表导致报错
              if (ss.getSheets().length > 1) {
                ss.deleteSheet(targetSheet);
                console.log(`已删除工作表:${sheetName}`);
              } else {
                ui.alert(`无法删除最后一个工作表:${sheetName}`);
              }
            } else {
              console.log(`未找到目标工作表:${sheetName}`);
            }
          } catch (e) {
            ui.alert(`删除工作表${sheetName}时出错:${e.message}`);
          }
        }
        // 删除当前勾选的行
        ws.deleteRow(i + 1);
      }
    }
    ui.alert("操作完成");
  }
}

关键修改说明:

  • 批量获取数据:一次性读取包含复选框列和工作表名称列的范围,减少API调用次数,提升脚本效率
  • 工作表名称匹配:根据你存储工作表名称的列修改索引(列从左到右从0开始计数,比如B列对应索引1)
  • 容错处理:删除前检查目标工作表是否存在,同时防止删除最后一个工作表导致表格异常
  • 异常捕获:用try-catch处理删除时的权限、保护等异常情况

使用注意:

  1. 替换代码中data[i][0]的索引为你实际存储工作表名称的列索引
  2. 操作前务必备份表格,避免数据丢失
  3. 工作表名称区分大小写,需确保和创建时的名称完全一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 13:18:24