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);
....
}
编辑:在我不想删除的范围内,我还有许多单元格上的函数。使用:
全文如下:
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行中的函数。有没有不删除这些函数的解决方案?