You need to enable JavaScript to run this app. 如何重命名从其他电子表格复制的多个工作表并覆盖同名已有表
优惠活动
大模型
产品
解决方案
定价
更多

如何重命名从其他电子表格复制的多个工作表并覆盖同名已有表

解决代码

function copySheetsToNewSS() {
  var ss = SpreadsheetApp.getActive();
  // 目标表仅需打开一次,无需放在循环内重复调用
  var destination = SpreadsheetApp.openById("1goBAwtP1clFCt_UQEn2DEPgGQzgSJ5vppG52ouYRGI");
  var sourceSheets = ss.getSheets();

  for(var i = 0; i < sourceSheets.length; i++){
    var sourceSheet = sourceSheets[i];
    var sheetName = sourceSheet.getName();

    // 检查目标表是否存在同名工作表,存在则直接删除实现覆盖
    var existingSheet = destination.getSheetByName(sheetName);
    if (existingSheet) {
      destination.deleteSheet(existingSheet);
    }

    // copyTo方法返回新复制的工作表实例,直接重命名为原表名称即可
    var newCopiedSheet = sourceSheet.copyTo(destination);
    newCopiedSheet.setName(sheetName);
  }

  // 删除默认Sheet1前先判断是否存在,避免触发报错
  var defaultSheet = destination.getSheetByName("Sheet1");
  if (defaultSheet) {
    destination.deleteSheet(defaultSheet);
  }
}

关键修改说明

  • 将目标表初始化逻辑移到循环外,避免每次循环重复打开目标表,大幅提升运行效率
  • 每次复制前先校验目标表是否存在同名工作表,提前删除实现覆盖效果
  • 调用copyTo()方法后直接获取新生成的工作表实例,调用setName()修改为原表名称,解决默认生成「副本」后缀的问题
  • 新增默认Sheet1存在性判断,避免目标表本身无默认Sheet1时运行报错

内容的提问来源于stack exchange,提问作者prachi arora

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 21:27:01