我无法让脚本按照我想要的方式运行。我想要它做的是获取3个值,根据几个参数对它们进行评估,然后根据评估将值传递给特定的单元格。到目前为止,我有这个;
function myFunction() {
var f = SpreadsheetApp.getActiveSheet().getRange("B$8");
var l = SpreadsheetApp.getActiveSheet().getRange("B$14");
var m = SpreadsheetApp.getActiveSheet().getRange("B$20");
if(f >= 1 && l >= 1 && m >= 1) {
SpreadsheetApp.getActiveSheet().getRange('B$49').setValue('0');
} else if (f >= 2) {
SpreadsheetApp.getActiveSheet().getRange('B$49').setValue('0');
} else if (f == 1 && l == 0 && m == 0) {
SpreadsheetApp.getActiveSheet().getRange('B$49').setValue('1');
} else if (f == 0 && l >=1 && m >= 1) {
SpreadsheetApp.getActiveSheet().getRange('B$49').setValue('2');
} else if (f == 0 && l+m <= 4) {
SpreadsheetApp.getActiveSheet().getRange('B$49').setValue('3');
} else if (f == 0 && l == 0 && m <=4) {
SpreadsheetApp.getActiveSheet().getRange('B$49').setValue('4');
} else if (f == 0 && i == 0 && m == 0) {
SpreadsheetApp.getActiveSheet().getRange('B$49').setValue('5');
} else {
SpreadsheetApp.getUi().alert('There has been an error, please rate manually');
}
}
无论我在单元格B8,B14或B20中有什么值,都会收到错误消息。
我还希望它能够在多个列中运行,而行保持不变(在范围内只有&#39; $&#39;)。虽然我不确定我是否正确这样做。
如果有人可以查看我的代码并解释我做错了什么,并帮助我了解如何修复它,我们将非常感激。
答案 0 :(得分:1)
在获取数据的行中,您需要添加.getValue(),如下所示:
SpreadsheetApp.getActiveSheet().getRange("B$8").getValue()
你输了一个拼写错误:
else if (f == 0 && i == 0 && m == 0)
我相信我应该是l。
另外,请检查逻辑中的值&#39; 3&#39;。就像它是你永远不会到达&#39; 4&#39;或者&#39; 5&#39;。