如何修改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
相关产品推荐
相关产品推荐

