For loop 使用偏移量在Google工作表中循环一列,并在单元格中减去2个值

For loop 使用偏移量在Google工作表中循环一列,并在单元格中减去2个值,for-loop,google-apps-script,google-sheets,For Loop,Google Apps Script,Google Sheets,我正在写一个谷歌表单的库存管理脚本。我需要做的是 我正在尝试向下循环列“A”,并检查列“A”中的单元格是否有值。如果列“A”中的那一行确实有值,那么我想从列“A”中的值减去列“E”中的值,然后将差值的结果存储在列“E”中。在程序循环到A列的最后一个单元格(在327处硬编码)之后,我希望清除A列中的所有值 目前正在发生的事情是第一行中列“A”有一个值,但在那之后它就到处都是了。我认为我的循环迭代可能是错误的,但我无法理解 function myFunction4() { var mySheet

我正在写一个谷歌表单的库存管理脚本。我需要做的是

我正在尝试向下循环列“A”,并检查列“A”中的单元格是否有值。如果列“A”中的那一行确实有值,那么我想从列“A”中的值减去列“E”中的值,然后将差值的结果存储在列“E”中。在程序循环到A列的最后一个单元格(在327处硬编码)之后,我希望清除A列中的所有值

目前正在发生的事情是第一行中列“A”有一个值,但在那之后它就到处都是了。我认为我的循环迭代可能是错误的,但我无法理解

function myFunction4() {
  var mySheet = SpreadsheetApp.getActiveSheet();

  var high = mySheet.getRange("E10");
  var low = mySheet.getRange("A10");

  for (var i = 0; i < 327; i++) {
    if (low.getValue() == 0 ) {
      i = i + 1;
    } else {
      high = high.offset(i, 0);
      low = low.offset(i, 0);
      high.setValue(high.getValue() - low.getValue());
    }

    mySheet.getRange("A10:A328").clearContent();
  }
}
函数myFunction4(){
var mySheet=SpreadsheetApp.getActiveSheet();
var高=mySheet.getRange(“E10”);
var low=mySheet.getRange(“A10”);
对于(变量i=0;i<327;i++){
if(low.getValue()==0){
i=i+1;
}否则{
高=高偏移量(i,0);
低=低偏移量(i,0);
high.setValue(high.getValue()-low.getValue());
}
mySheet.getRange(“A10:A328”).clearContent();
}
}

任何帮助都将不胜感激。试图让程序尽可能快地运行

最好使用一次读取(Range#getValues()
),然后使用生成的JavaScript数组,使用
Range#setValues`将修改后的数组写回电子表格。这样的方法会快得多。最好使用一次读取(Range#getValues()
),然后使用生成的JavaScript数组,使用
Range#setValues`将修改后的数组写回电子表格。这样的方法会快得多。