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

通过AppScript插入公式时出现#Error!/#Name!错误求助

解决AppScript插入公式出现#Error!/#Name!的问题

核心原因

  1. 引号转义错误:代码中使用了HTML实体"作为引号,这会导致单元格公式中出现无效的"字符串,而非正确的引号,触发解析错误。
  2. 函数名与语言环境不匹配:AppScript的setFormula默认使用英文函数名(如IF、VLOOKUP),但你的公式用了葡萄牙语函数名(SE、PROCV),若未适配语言环境会引发#Name!错误。

修正方案

方案1:使用setFormulaLocal适配本地语言函数名

setFormulaLocal会自动匹配当前Sheets文档的语言设置,直接使用本地语言函数名即可,同时修正引号转义(用普通双引号替代"):

targetSheet.getRange('U2:V').clearContent();
 
// 使用setFormulaLocal,保留葡萄牙语函数名,修正引号
rangeU2.setFormulaLocal('=ARRAYFORMULA(SEERRO(SE(M2:M = "", "", PROCV(M2:M; Players!C2:E; 3; FALSO)), ""))');
rangeV2.setFormulaLocal('=ARRAYFORMULA(SE(S2:S = "", "", SE(U2:U = "", "", SE(S2:S=U2:U, G2:G, SE(G2:G="victory", "defeat", "victory")))))');

方案2:改用英文函数名配合setFormula

如果习惯用英文函数名,直接替换为对应英文函数,同时修正引号:

targetSheet.getRange('U2:V').clearContent();
 
// 替换为英文函数名:IF→SE, VLOOKUP→PROCV, IFERROR→SEERRO
rangeU2.setFormula('=ARRAYFORMULA(IFERROR(IF(M2:M = "", "", VLOOKUP(M2:M, Players!C2:E, 3, FALSE)), ""))');
rangeV2.setFormula('=ARRAYFORMULA(IF(S2:S = "", "", IF(U2:U = "", "", IF(S2:S=U2:U, G2:G, IF(G2:G="victory", "defeat", "victory")))))');

验证步骤

  1. 替换代码中的"为普通双引号,选择上述任一方案修改函数名和方法。
  2. 重新运行脚本,检查单元格公式是否正常显示并计算结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 21:13:20