-1

嘿,我试图在谷歌表格中的脚本中创建一个代码,但我得到了#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);

  }
}

这是我的代码。我知道我可能没有充分解释我的自我,但我根本不知道如何描述我试图做的事情是什么,哈哈。

我真的很感激我能得到的任何帮助!先感谢您!

4

1 回答 1

2

如果您能识别出错误发生的行,那将是最好的。请记住,调试器是您的朋友。我发现了这个错误

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

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

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

这在脚本中出现了两次。

此外,另一个变量错字

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

应该是

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

很酷的事情是谷歌最近更新了脚本编辑器,因此它可以在我们键入时自动完成,还可以显示未以不同方式使用的变量。

在此处输入图像描述

在这种情况下,不使用 activesheet。

于 2021-04-28T10:34:34.657 回答