Google Sheets脚本需求:实现副本标签页自动按序号重命名
解决Google Sheets复制标签页自动按序号重命名的问题
你的原脚本仅实现了复制激活工作表的功能,没有处理重命名逻辑,所以会生成带多层“Copy of”的命名。下面是修改后的脚本,能自动按后续序号给新标签页命名:
function NEWTAB2() { var spreadsheet = SpreadsheetApp.getActive(); var activeSheet = spreadsheet.getActiveSheet(); var sheets = spreadsheet.getSheets(); // 提取所有标准命名(Sheet X)的工作表序号 var sheetNumbers = sheets.map(sheet => { var nameMatch = sheet.getName().match(/^Sheet (\d+)$/); return nameMatch ? parseInt(nameMatch[1]) : 0; }); // 计算下一个序号 var nextNumber = sheetNumbers.length ? Math.max(...sheetNumbers) + 1 : 1; // 复制并重命名工作表 var newSheet = activeSheet.copyTo(spreadsheet); newSheet.setName(`Sheet ${nextNumber}`); // 可选:激活新生成的工作表 spreadsheet.setActiveSheet(newSheet); };
关键说明:
- 脚本会自动扫描所有以
Sheet 数字格式命名的工作表,找到当前最大序号,新表命名为Sheet 最大序号+1 - 如果没有符合格式的工作表,默认从
Sheet 1开始命名 - 移除了原脚本中激活E13单元格的步骤(复制工作表不需要先激活单元格,若你有特殊需求可重新添加)
内容的提问来源于stack exchange,提问作者Kat Smee
相关产品推荐
相关产品推荐

