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

请求完善generateNewScope脚本:复制Sheet后仅移除副本公式并自动重命名

解决方法:修改脚本仅清除副本中的公式(保留值和格式)

我明白你的痛点——之前尝试的脚本误操作了原表,现在咱们直接在你现有的generateNewScope脚本里添加针对副本的处理逻辑,确保只改动新复制出来的工作表,完全不影响原表SourceData。

修改后的完整脚本

function generateNewScope() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sourceSheet = ss.getSheetByName("SourceData");
  // 复制源工作表
  var newSheet = sourceSheet.copyTo(ss);
  // 获取所有工作表,计算新名称(沿用你原有的命名逻辑)
  var allSheets = ss.getSheets();
  newSheet.setName(allSheets.length - 4);
  
  // 关键步骤:仅对副本执行"粘贴值和格式"操作,移除公式
  var dataRange = newSheet.getDataRange();
  // 原地复制值和格式,覆盖公式
  dataRange.copyTo(dataRange, SpreadsheetApp.CopyPasteType.PASTE_VALUES_AND_FORMATS, false);
}

关键改动说明

  1. 直接操作副本对象:不再通过激活工作表的方式操作,而是直接用sourceSheet.copyTo(ss)得到的newSheet对象进行后续处理,彻底避免误操作原表。
  2. 精准的粘贴逻辑:使用PASTE_VALUES_AND_FORMATS参数,既能移除所有公式,又完整保留原有的单元格格式(比如字体、颜色、列宽行高这些),完全符合你的需求。
  3. 简化激活步骤:原脚本里的ss.setActiveSheet其实没必要,直接获取源工作表对象更稳妥。

这样修改后,每次运行脚本都会生成一个仅含值和格式、命名为数字序号的新工作表,原表SourceData的公式丝毫不会被改动~

内容的提问来源于stack exchange,提问作者Kelly Danner

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 08:46:58