运行 个脚本在 google 个工作表中并获得 #num!错误

running script in google sheets and getting #num! error

嘿,我正在尝试在 google 工作表中用脚本创建代码,但我得到了 #NUM!一直出错。

    function Trador() {
  var app =SpreadsheetApp;
  var activesheet = app.getActiveSpreadsheet().getActiveSheet();

  var targetsheet = app.getActiveSpreadsheet().getSheetByName("End");
  var data = targetsheet.getLastRow();
  targetsheet.getRange(11,10).setValue(data);

  var strike;
  var outcome;
  var checkstrike;
  var openintrest;

  for (var c=2;c<=data;c++){
    stike = targetsheet.getRange(c,3).getValue();
    outcome = 0;
    for (var b=2;b<=data;b++){
      checkstrike = targetsheet.getRange(b,3).getValue();
      if (strike>checkstrike){
        openintrest = targetsheet.getRange(b,2).getValue(); // call
        if (openintrest='-'){
          openintrest=0;
        }
        outcome = (strike-checkstrike) * 100 * openintrest + outcome;
      } else{
        openintrest = targetsheet.getRange(b,5).getValue(); // put
        if (openintrest='-'){
          openintrest=0;
        }
        outcome = (checkstrike-strike) * 100 * openintrest + outcome;
      }
    }
    targetsheet.getRange(c,9).setValue(outcome);

  }
}

这是我的代码。 我知道可能我没有完整地解释我自己,但我只是不知道如何描述我正在尝试做的事情 LOL。

如果能得到任何帮助,我将不胜感激! 提前谢谢你!

最好能找出错误所在的行。记住,调试器是你的朋友。我发现了这个错误

if (openintrest='-'){
  openintrest=0;
}

这是给变量分配破折号,而不是比较。试试这个:

if (openintrest == '-'){
  openintrest=0;
}

这在脚本中出现了两次。

此外,另一个变量错字

stike = targetsheet.getRange(c,3).getValue();

假设是

strike = targetsheet.getRange(c,3).getValue();

很酷的是 Google 最近更新了脚本编辑器,因此它可以在我们键入时自动完成,还显示变量并没有被不同地使用。

在这种情况下,不使用活动表。