Excel转Google Sheets公式含双引号时setValue写入失败解决方案
解决方案
你遇到的问题是JavaScript字符串语法限制:当你用双引号"包裹整段公式字符串时,公式内部的双引号会被识别为字符串的结束标记,直接触发语法错误,导致公式写入失败。
方案1:转义内部双引号
在公式内部的每个双引号前加反斜杠\进行转义即可,修改后的代码如下:
SpreadsheetApp.openById(newID).getSheetByName("Linie 16").getRange(28,3,1,1).setValue("=SUMMENPRODUKT((Query!$K$2:$K$20876=$E$28)*(RECHTS(Query!$A$2:$A$20876;3)<>\"001\")*(Query!$G$2:$G$20876))");
方案2:使用模板字符串包裹公式(无需手动转义)
如果不想手动加转义符,也可以用ES6的反引号模板字符串来包裹整个公式,此时内部的双引号不需要额外处理:
SpreadsheetApp.openById(newID).getSheetByName("Linie 16").getRange(28,3,1,1).setValue(`=SUMMENPRODUKT((Query!$K$2:$K$20876=$E$28)*(RECHTS(Query!$A$2:$A$20876;3)<>"001")*(Query!$G$2:$G$20876))`);
注意:你当前用的
SUMMENPRODUKT、RECHTS是德语地区Google Sheets的函数名,如果你后续切换到英语地区的表格环境,需要对应替换为SUMPRODUCT、RIGHT。
内容的提问来源于stack exchange,提问作者Sammi
相关产品推荐
相关产品推荐

