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

求助:为Google Sheet创建跨工作表自动清除脚本

午餐订单表批量清除指定单元格范围的AppsScript代码

以下是适配你需求的批量清除脚本,可处理同一电子表格内所有27个工作表的指定单元格范围:

function clearLunchOrderRanges() {
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  // 替换为你实际需要清除的单元格范围,例如"B3:D25"
  const targetRange = "A2:C100";
  
  // 获取所有工作表,如需排除特定表可添加过滤逻辑
  const sheets = ss.getSheets();
  
  sheets.forEach(sheet => {
    try {
      const range = sheet.getRange(targetRange);
      // 清除内容+格式,若仅需清内容改为range.clearContent()
      range.clear({contentsOnly: false, skipFilteredRows: true});
      console.log(`已处理工作表:${sheet.getName()}`);
    } catch (err) {
      console.error(`工作表「${sheet.getName()}」处理失败:${err.message}`);
    }
  });
}

自定义说明

  • 修改目标范围:将targetRange的值替换为你实际需要清除的单元格区域,比如订单填写的有效范围
  • 排除特定工作表:如果存在不需要处理的表(如汇总统计页),可添加过滤逻辑:
    // 示例:排除名为"午餐汇总"的工作表
    const filteredSheets = sheets.filter(sheet => sheet.getName() !== "午餐汇总");
    filteredSheets.forEach(sheet => { /* 原遍历逻辑 */ });
    
  • 清除选项调整:
    • range.clearContent():仅清除单元格内容,保留原有格式
    • range.clearFormat():仅清除格式设置,保留内容
    • 代码中clear()方法会同时清除内容和格式,skipFilteredRows: true会跳过被筛选隐藏的行

触发方式

  1. 手动运行:打开谷歌表格的「扩展程序」→「Apps 脚本」,粘贴代码后选中函数点击运行按钮
  2. 定时自动运行:在脚本编辑器右侧「触发器」面板,添加时间驱动触发器(比如每天凌晨自动执行)
  3. 按钮触发:在表格中插入绘图/按钮,将其关联到clearLunchOrderRanges函数,点击即可执行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 13:35:13