【问题标题】:Google script .setFormula error with string value [duplicate]带有字符串值的Google脚本.setFormula错误[重复]
【发布时间】:2020-08-21 06:59:13
【问题描述】:

我是新手,所以请原谅这个简单的问题。我正在尝试将以下公式插入到谷歌表 L2_R1 最终产品的单元格 E18 中:

=if(D17="Poor",0,if(D17="Acceptable",1,if(D17="Excellent",2,)))

我是这样处理的:

var sheet4= SpreadsheetApp.getActiveSpreadsheet().getSheetByName("L2_R1 Final Product");

var r2_fpr1_1 = sheet4.getRange("E18");
r2_fpr1_1.setFormula("=if(D18="Poor",0,if(D18="Acceptable",1,if(D18="Excellent",2,)))");

这会在参数列表(第 108 行,文件“Code.gs”)之后产生错误:SyntaxError: missing) 虽然我不认为我真的错过了)

在浏览了其他帖子后,我尝试了以下方法:

var r2_fpr1_1 = sheet4.getRange("E18");
r2_fpr1_1.setFormula("=if(D18=\""+Poor+"\",0,if(D18=\""+Acceptable+"\",1,if(D18=\""+Excellent+"\",2,)))");

var r2_fpr1_1 = sheet4.getRange("E18”) 
r2_fpr1_2.setFormula(`=if(D18="${Poor}",0,if(D18="${Acceptable}",1,if(D18="${Excellent}",2,)))`);

这两个都给我错误:ReferenceError:Poor is not defined(第 108 行,文件“代码”)

那么我错过了什么?

【问题讨论】:

  • 下面的答案是正确的,但重点是使用`:字符串模板文字或转义中间分隔符\"\'
  • @TheMaster 我刚刚注意到她尝试使用文字但她在这里打错了:sheet4.getRange("E18”);
  • @MariosKaramanis 错误提示不是原始脚本中的错字
  • 是的,那是因为拼写错误在r2_fpr1_1 中,但后来她打电话给r2_fpr1_2。反正我很困惑:P
  • @Marios Wild 梦想你在那里... :)

标签: javascript google-apps-script google-sheets google-sheets-formula


【解决方案1】:

您也可以改用setValue()

var r2_fpr1_1 = sheet4.getRange('E18');
r2_fpr1_1 .setValue(`=if(D17="Poor",0,if(D17="Acceptable",1,if(D17="Excellent",2,)))`)

setFormula() 也可以正常工作:

var r2_fpr1_1 = sheet4.getRange('E18');
r2_fpr1_1.setFormula(`=if(D17="Poor",0,if(D17="Acceptable",1,if(D17="Excellent",2,)))`)

参考资料:

Template literals

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-10
    相关资源
    最近更新 更多