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

求助:如何用App Script批量给Google Sheets所有工作表复制公式

批量给Google Sheets所有工作表插入指定区域公式的解决方案

以下是可以一次性处理所有工作表的App Script,无需逐个编写脚本:

function batchCopyFormulasToAllSheets() {
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  // 替换为你的公式模板所在工作表名称
  const sourceSheet = ss.getSheetByName("Sheet1");
  const sourceRange = sourceSheet.getRange("H2:H13");
  
  // 获取文档内所有工作表
  const allSheets = ss.getSheets();
  
  // 遍历处理每个工作表
  allSheets.forEach(sheet => {
    // 跳过模板工作表,避免重复操作(可根据需求删除此判断)
    if (sheet.getName() === sourceSheet.getName()) return;
    
    // 目标区域:当前工作表的H2:H13,与源区域位置一致
    const targetRange = sheet.getRange("H2:H13");
    // 仅复制公式,如需复制格式/值可修改CopyPasteType参数
    sourceRange.copyTo(targetRange, SpreadsheetApp.CopyPasteType.PASTE_FORMULAS);
  });
  
  // 操作完成提示
  SpreadsheetApp.getUi().alert("公式批量复制完成!");
}

关键说明

  • 批量遍历:通过getSheets()获取所有工作表,自动遍历处理400+工作表,无需手动指定每个表名
  • 复制规则:使用PASTE_FORMULAS确保仅复制公式;若需复制格式+公式,替换为PASTE_NORMAL;若仅复制值,替换为PASTE_VALUES
  • 跳过指定表:代码中默认跳过模板工作表,若需要给所有表(包括模板表)应用公式,删除if (sheet.getName() === sourceSheet.getName()) return;这一行即可

使用步骤

  1. 打开目标Google Sheets文档
  2. 点击顶部菜单栏「扩展程序」→「Apps 脚本」
  3. 清空默认代码,粘贴上述脚本
  4. 修改sourceSheet的名称为你实际存放模板公式的工作表
  5. 点击保存,给脚本命名(如batchCopyFormulas)
  6. 点击运行,首次运行需完成授权(按提示点击「高级」→「转到脚本」即可完成授权)

自定义调整

如果需要将公式插入到动态位置(而非固定H2:H13),可修改目标区域的获取逻辑,比如对应到工作表最后一行往上数11行的位置:

// 替换原targetRange行代码
const targetRow = sheet.getLastRow() - 11;
const targetRange = sheet.getRange(targetRow, 8, 12, 1); // 参数:起始行,列(H为第8列),行数(12行),列数(1列)

内容的提问来源于stack exchange,提问作者James N.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 23:46:03