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

如何修改Google Apps Script从指定工作表读取排除表与范围配置?

修改后的Google Apps Script代码
function myFunction2() {
  const templateSheetName = "Template";
  const helperSheetName = "Helper";
  
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const helperSheet = ss.getSheetByName(helperSheetName);
  
  // 从Helper!A1:A8读取需排除的工作表名称,自动过滤空单元格,同时加入模板表
  const sheetsToExclude = [templateSheetName, ...helperSheet.getRange("A1:A8").getValues()
    .flat()
    .filter(name => name !== "")];
  
  // 从Helper!B1:B4读取需复制的单元格范围,过滤空单元格
  const ranges = helperSheet.getRange("B1:B4").getValues()
    .flat()
    .filter(range => range !== "");
  
  // 获取所有需要应用公式的工作表(排除指定列表)
  const targetSheets = ss.getSheets().filter(sheet => !sheetsToExclude.includes(sheet.getSheetName()));
  
  // 从模板表批量读取指定范围的公式
  const templateSheet = ss.getSheetByName(templateSheetName);
  const formulas = ranges.map(range => templateSheet.getRange(range).getFormulas());
  
  // 将公式批量写入目标工作表的对应范围
  targetSheets.forEach(sheet => {
    ranges.forEach((range, index) => {
      sheet.getRange(range).setFormulas(formulas[index]);
    });
  });
}

关键修改说明

  • 动态读取排除列表:不再硬编码排除的工作表名称,而是从Helper表的A1:A8范围读取,同时自动过滤空单元格,保留原逻辑里的模板表排除规则
  • 动态读取复制范围:从Helper表的B1:B4范围读取需要复制公式的单元格区域,过滤空单元格避免无效范围
  • 逻辑优化:小幅整理了工作表获取、公式读取的步骤,代码更清晰,同时完全保留原代码的核心功能——将模板表指定范围的公式同步到所有非排除工作表的对应位置

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 05:30:58