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

Google Sheets脚本保存报错:missing ) after argument list,请求修复数据合并脚本

问题修复:Google Sheets脚本语法错误(SyntaxError: missing ) after argument list)

错误原因拆解

  • 无关字符打断语法:const allSheets = ss.getSheets(); I这行末尾多了个大写字母I,直接触发语法报错。
  • 模板字符串使用错误:map方法里的字符串用单引号包裹,却用了${}变量插值,必须改用反引号`才能解析变量。
  • 变量名不匹配:map的参数定义为ss,但内部引用的是s,导致变量未定义。
  • 代码截断+公式括号错误:原代码有截断片段(比如//co),且注释里的FILTER公式括号嵌套错误(虽不影响执行,但生成的公式需保证语法合法)。

修复后的完整代码

function myFunction() {
  // 设置变量
  const masterSheet = "Master";
  const masterSheetFormulaCell = "A2";
  const ignoreSheets = ["Copy of Master"];
  const dataRange = "A2:G";
  const checkRange = "A2:A";
  // 变量定义结束

  const ss = SpreadsheetApp.getActiveSpreadsheet();
  ignoreSheets.push(masterSheet);
  const allSheets = ss.getSheets();
  const filteredlistOfSheets = allSheets.filter(s => ignoreSheets.indexOf(s.getSheetName()) === -1);

  let formulaArray = filteredlistOfSheets.map(s => 
    `FILTER({'${s.getSheetName()}'!${dataRange}, "${s.getSheetName()} • Row "&ROW('${s.getSheetName()}'!${checkRange})}, '${s.getSheetName()}'!${checkRange}<>"")`
  );

  let formulaText = "={" + formulaArray.join(";") + "}";

  console.log(formulaText);
  ss.getSheetByName(masterSheet).getRange(masterSheetFormulaCell).setFormula(formulaText);
}

核心修复点说明

  1. 删掉const allSheets = ss.getSheets();后的多余字符I。
  2. 把map内的单引号替换为反引号,让变量插值语法生效。
  3. 统一map的参数名为s,和内部引用保持一致。
  4. 修正FILTER公式的括号结构,确保生成的公式能在Google Sheets中正常运行。
  5. 补全被截断的代码片段,保证逻辑完整。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 23:23:15