Javascript Google应用程序脚本-通过行循环和添加

Javascript Google应用程序脚本-通过行循环和添加,javascript,for-loop,google-apps-script,google-sheets,Javascript,For Loop,Google Apps Script,Google Sheets,我想激活一个脚本,上面写着 b[i]=b[i]+f[i] 对于一行中[i]的每个值。有没有一种方法可以让我在循环中这样做?下面是我目前拥有的超级低效的代码(我有一个5个的小数据集,所以我现在可以不使用它),我希望它采用循环格式,这样它就可以支持可伸缩性等等 function Update() { //update A var Ax = SpreadsheetApp.getActiveSheet().getRange('B2').getValue(); va

我想激活一个脚本,上面写着

b[i]=b[i]+f[i]
对于一行中[i]的每个值。有没有一种方法可以让我在循环中这样做?下面是我目前拥有的超级低效的代码(我有一个5个的小数据集,所以我现在可以不使用它),我希望它采用循环格式,这样它就可以支持可伸缩性等等

function Update() {

      //update A
      var Ax = SpreadsheetApp.getActiveSheet().getRange('B2').getValue();
      var Ay = SpreadsheetApp.getActiveSheet().getRange('D2').getValue();
      SpreadsheetApp.getActiveSheet().getRange('B2').setValue(Ax+Ay);

      //update B
      var Bx = SpreadsheetApp.getActiveSheet().getRange('B3').getValue();
      var By = SpreadsheetApp.getActiveSheet().getRange('D3').getValue();
      SpreadsheetApp.getActiveSheet().getRange('B3').setValue(Bx+By);
      ....
    }
编辑:在我不想删除的范围内,我还有许多单元格上的函数。

使用:

全文如下:
使用:

全文如下:

我修改了@TheMaster answer,这样它只会在B列上设置值

function Update() {
  const sh = SpreadsheetApp.getActiveSheet(),
    changeColumn = sh.getRange(`B2:B${sh.getLastRow()}`),
    changeColumnValues = changeColumn.getValues(),
    valuesToAdd = sh.getRange(`D2:D${sh.getLastRow()}`).getValues(),
    valuesToSet = changeColumnValues.map((value, i)=> [value[0] + valuesToAdd[i][0]]);

  changeColumn.setValues(valuesToSet);
}

我修改了@TheMaster answer,使其只在B列上设置值

function Update() {
  const sh = SpreadsheetApp.getActiveSheet(),
    changeColumn = sh.getRange(`B2:B${sh.getLastRow()}`),
    changeColumnValues = changeColumn.getValues(),
    valuesToAdd = sh.getRange(`D2:D${sh.getLastRow()}`).getValues(),
    valuesToSet = changeColumnValues.map((value, i)=> [value[0] + valuesToAdd[i][0]]);

  changeColumn.setValues(valuesToSet);
}

谢谢你的解决方案!代码本身工作正常,但不幸的是,它覆盖了我为D行获取其值而准备的函数(我可能应该提到),以及它们之间的C行中的函数。有没有不删除这些功能的解决方案?谢谢您的解决方案!代码本身工作正常,但不幸的是,它覆盖了我为D行获取其值而准备的函数(我可能应该提到),以及它们之间的C行中的函数。有没有不删除这些函数的解决方案?