Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为范围内的每个单元格添加值(谷歌应用程序脚本)_Javascript_Google Apps Script_Google Sheets - Fatal编程技术网

Javascript 为范围内的每个单元格添加值(谷歌应用程序脚本)

Javascript 为范围内的每个单元格添加值(谷歌应用程序脚本),javascript,google-apps-script,google-sheets,Javascript,Google Apps Script,Google Sheets,我正在为GoogleSheets构建一个宏,在这个宏中我遍历一个范围,并为每个单元格添加一个值。我一直在尝试几种不同的方法,但都很慢。对于30个细胞,这大约需要一分钟。有没有办法让它更快/用不同的方式写?这是一个宏,将在一天内运行很多次,最大范围约为30列 for (var j = 1; j <= range.getNumColumns(); j++) { if(range.getCell(1, j).getValue() == "") {

我正在为GoogleSheets构建一个宏,在这个宏中我遍历一个范围,并为每个单元格添加一个值。我一直在尝试几种不同的方法,但都很慢。对于30个细胞,这大约需要一分钟。有没有办法让它更快/用不同的方式写?这是一个宏,将在一天内运行很多次,最大范围约为30列

for (var j = 1; j <= range.getNumColumns(); j++) {    
    if(range.getCell(1, j).getValue() == "") {
        range.getCell(1,j).setValue(valueToAdd/(colEnd-colStart));
    }   else range.getCell(1,j).setValue(valueToAdd/(colEnd-colStart)+(parseFloat(range.getCell(1,j).getValue()))); 
}
for(var j=1;j试着这样做:

function iterateThroughARange() {
  const ss=SpreadsheetApp.getActive();
  const sh=ss.getSheetByName('Sheet1');
  const rg=sh.getDataRange();
  const vs=rg.getValues();
  vs.forEach(function(r,i){
    r.forEach(function(c,j){
      vs[i][j]='Your Adjustment';
    });
  })
  rg.setValues(vs);
}


通过这种方式,您可以一次获取所有数据,执行调整并一次保存所有数据。如果您不想在某些单元格中写入数据,这将变得更加棘手。然后,您可能必须返回到写入单个单元格的较慢方法。因此,请思考布局排列如何对脚本速度产生相当大的影响。

Luckilty,它的整个范围都会被改变,谢谢!我现在来测试一下