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

如何修改Google Sheets排序脚本,让LIST和TEMPLATE工作表留最前

工作表排序脚本修改方案

修改后的排序脚本

替换原有的onOpen和sortSheetsByName函数为以下代码:

function onOpen() {
  sortSheetsByName();
}

function sortSheetsByName() {
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const allSheets = ss.getSheets();
  // 指定固定在最前端的工作表名称
  const fixedSheetNames = ['LIST', 'TEMPLATE'];
  const fixedSheets = [];
  const sortableSheets = [];

  // 分离固定工作表和可排序工作表
  allSheets.forEach(sheet => {
    const sheetName = sheet.getName();
    if (fixedSheetNames.includes(sheetName)) {
      fixedSheets.push(sheet);
    } else {
      sortableSheets.push(sheet);
    }
  });

  // 对可排序工作表按名称字母排序(不区分大小写)
  sortableSheets.sort((a, b) => {
    const nameA = a.getName().toLowerCase();
    const nameB = b.getName().toLowerCase();
    if (nameA < nameB) return -1;
    if (nameA > nameB) return 1;
    return 0;
  });

  // 合并顺序:固定表在前,排序后的表在后
  const orderedSheets = [...fixedSheets, ...sortableSheets];

  // 调整工作表位置
  orderedSheets.forEach((sheet, index) => {
    if (sheet.getIndex() !== index + 1) {
      ss.setActiveSheet(sheet);
      ss.moveActiveSheet(index + 1);
    }
  });
}

修改说明

  • 固定工作表分组:通过fixedSheetNames数组明确标记需要保留在最前端的工作表,避免排序时移动它们
  • 分组处理逻辑:遍历所有工作表,将固定表和其他需要排序的表分开,确保固定表不参与排序
  • 大小写兼容排序:排序时将工作表名称转为小写,避免因大小写差异导致排序结果不符合预期
  • 顺序合并与位置调整:先放置固定表,再追加排序后的其他表,最后统一调整每个工作表的位置,确保顺序正确

原复制脚本无需修改

原有的TemplateDuplication函数可以保持原样,它的功能不受排序脚本修改的影响。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 17:15:08