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

如何修改Google Sheets脚本使其仅对指定工作表执行F、G列求和

Google Sheets 指定工作表执行列求和脚本调整方案

你现有脚本默认遍历全量工作表写入求和公式,要实现仅对选定部分工作表生效,可根据使用习惯选择以下两种方案:


方案1:固定白名单匹配工作表名

提前把需要处理的工作表名称写到配置数组里,脚本运行时只会给名称匹配的工作表写入公式,适合固定处理某几个表的场景。
调整后完整代码:

function runMacro() {
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  // 在这里填写你要处理的工作表名称,需和底部工作表标签文字完全一致
  const targetSheetNames = ["销售表1", "库存表", "月度统计"];
  targetSheetNames.forEach(sheetName => {
    const targetSheet = ss.getSheetByName(sheetName);
    // 表名不匹配时跳过,避免运行报错
    if (targetSheet) addFormula_(targetSheet);
  })
}

function addFormula_(_sh) {
  const formulaString = '=FILTER(F2:F+G2:G,F2:F<>"")';
  const theAddress = 'H2';
  _sh.getRange(theAddress).setFormula(formulaString);
}

方案2:手动选中目标工作表执行

不需要提前配置表名,运行脚本前按住Ctrl点选底部要处理的工作表标签,脚本会自动识别所有选中的工作表执行计算,适合每次处理的工作表不固定的场景。
调整后完整代码:

function runMacro() {
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  // 读取当前选中的所有工作表
  const selectedSheets = ss.getActiveSheetList();
  selectedSheets.forEach(addFormula_);
}

function addFormula_(_sh) {
  const formulaString = '=FILTER(F2:F+G2:G,F2:F<>"")';
  const theAddress = 'H2';
  _sh.getRange(theAddress).setFormula(formulaString);
}

注意事项

  • 两种方案都保留了原有公式逻辑:从H2单元格开始,自动匹配F列非空行,计算对应行F列+G列的和写入H列,不会产生多余空值
  • 使用白名单方案时,数组内的表名要和工作表标签文字完全一致,注意区分大小写、前后空格
  • 使用手动选中方案时,要先点选工作表标签再运行脚本,不要停在单元格编辑状态运行,否则会识别不到选中的多表

脚本运行效果示例


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 08:27:04