问题
I'm new to this so please forgive the simple question. I'm trying to insert the following formula into cell E18 of google sheet L2_R1 Final Product:
=if(D17="Poor",0,if(D17="Acceptable",1,if(D17="Excellent",2,)))
I've gone about it the following way:
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,)))");
This produces the error: SyntaxError: missing ) after argument list (line 108, file "Code.gs") Although I don't think I'm actually missing a )
After going through other posts I've tried the following:
var r2_fpr1_1 = sheet4.getRange("E18");
r2_fpr1_1.setFormula("=if(D18=\""+Poor+"\",0,if(D18=\""+Acceptable+"\",1,if(D18=\""+Excellent+"\",2,)))");
and
var r2_fpr1_1 = sheet4.getRange("E18”)
r2_fpr1_2.setFormula(`=if(D18="${Poor}",0,if(D18="${Acceptable}",1,if(D18="${Excellent}",2,)))`);
Both of those give me the error: ReferenceError: Poor is not defined (line 108, file "Code")
So what am I missing?
回答1:
You can also use setValue() instead:
var r2_fpr1_1 = sheet4.getRange('E18');
r2_fpr1_1 .setValue(`=if(D17="Poor",0,if(D17="Acceptable",1,if(D17="Excellent",2,)))`)
But also setFormula() works just fine:
var r2_fpr1_1 = sheet4.getRange('E18');
r2_fpr1_1.setFormula(`=if(D17="Poor",0,if(D17="Acceptable",1,if(D17="Excellent",2,)))`)
References:
Template literals
来源:https://stackoverflow.com/questions/63517984/google-script-setformula-error-with-string-value