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

求助:编写可自动更新的Apps Script筛选含“Week of”的工作表名列表

解决方案:筛选并自动更新“Week of”开头的工作表列表

核心筛选逻辑替换

把原来获取所有工作表或固定跳过前6个的逻辑,换成按标题前缀筛选,用startsWith()方法精准匹配以"Week of"开头的工作表,不管后续新增多少表都能自动识别。

完整代码实现

function updateWeekSheetsList() {
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const allSheets = ss.getSheets();
  
  // 筛选标题以"Week of"开头的工作表
  const targetSheets = allSheets.filter(sheet => sheet.getName().startsWith("Week of"));
  // 提取工作表名称列表
  const sheetNames = targetSheets.map(sheet => sheet.getName());
  
  // 把列表写入指定工作表(示例:写入"汇总表"的A列,A1为表头)
  const outputSheet = ss.getSheetByName("汇总表");
  if (!outputSheet) return; // 如果目标表不存在则终止
  
  // 清空旧数据(从A2开始,保留A1表头)
  const oldDataRange = outputSheet.getRange(2, 1, outputSheet.getLastRow() - 1, 1);
  if (outputSheet.getLastRow() > 1) oldDataRange.clearContent();
  
  // 写入新数据
  if (sheetNames.length > 0) {
    outputSheet.getRange(2, 1, sheetNames.length, 1).setValues(sheetNames.map(name => [name]));
  }
}

// 打开文档时自动更新列表
function onOpen() {
  updateWeekSheetsList();
}

// 编辑文档时自动更新列表
function onEdit() {
  updateWeekSheetsList();
}

关键说明

  • 筛选逻辑:sheet.getName().startsWith("Week of")会严格匹配标题开头的关键词,大小写敏感(如果需要忽略大小写可以改成sheet.getName().toLowerCase().startsWith("week of"))
  • 自动触发:onOpen()和onEdit()是Apps Script内置的简单触发器,无需手动配置,打开或编辑文档时会自动运行更新
  • 自定义调整:你可以修改"汇总表"为你实际要存放列表的工作表名称,也可以调整写入的行列位置(比如从B3开始写就改getRange(3, 2, ...))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 06:03:08