用于评估值并指定单元格值的Google自定义脚本

时间:2017-01-26 18:29:41

标签: javascript google-sheets

我无法让脚本按照我想要的方式运行。我想要它做的是获取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;)。虽然我不确定我是否正确这样做。

如果有人可以查看我的代码并解释我做错了什么,并帮助我了解如何修复它,我们将非常感激。

1 个答案:

答案 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;。