Google Sheets脚本:复制模板重命名新表并将表名写入C2单元格
实现方法
只需要在原有循环中接收新建工作表的返回对象,直接对C2单元格赋值即可,无需额外遍历查找工作表,改动量极小。
修改后可直接运行的代码
function duplicateTemplateN(){ const ss = SpreadsheetApp.getActive(); const template = ss.getSheetByName("TEMPLATE"); const sheetNames = ["ADM_001.a","ADM_001.b","ADM_002.a","ADM_002.b","ADM_003.a","ADM_003.b","ADM_004.a","ADM_004.b","ADM_005.a","ADM_005.b","ADM_006.a","ADM_006.b","ADM_007.a","ADM_007.b","ADM_008.a","ADM_008.b","ADM_009.a","ADM_009.b","ADM_010.a","ADM_010.b"]; for (const name of sheetNames){ const newSheet = template.copyTo(ss).setName(name); // 向新工作表C2单元格写入当前表名 newSheet.getRange("C2").setValue(name); } }
关键改动说明
template.copyTo(ss).setName(name)执行完成后会直接返回重命名后的新工作表对象,直接存为变量即可操作,不需要额外调用getSheetByName二次查找,执行效率更高- 新增的
newSheet.getRange("C2").setValue(name)会在每个新建工作表的C2单元格写入对应标签名称,完全匹配需求 - 代码把原来的
for...in循环改成了更适合数组遍历的for...of写法,避免索引取值的冗余步骤,逻辑更清晰
内容的提问来源于stack exchange,提问作者Laura Straub
相关产品推荐
相关产品推荐

