我的Apps脚本循环没有查看比第一行更多的行

时间:2013-12-02 16:21:21

标签: loops google-apps-script

我有一个通用电子表格,其中B列的编号为1-9。我想将每个行项目复制到我创建的相应表格,表1-9。但是,我将循环设置为从第5行开始并继续数据范围内所有行的长度,但循环不会继续经过第5行,即使B列中有更多行为“1”。任何人都可以帮助查看原因我的循环没有继续?谢谢!

function GoodFunction() {

var spreadsheet = SpreadsheetApp.getActive()
var R0sheet = spreadsheet.getSheetByName('S14Allocation')
var R1sheet = spreadsheet.getSheetByName('R1-Allocations')

var ss = spreadsheet;
var s = R0sheet
var targetSheet = R1sheet
var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
var r = s.getDataRange();     
var numColumns = s.getLastColumn();
var numRows=s.getLastRow();
for (var i = 5; i <= numRows.length ; i++); {
  if (s.getDataRange().getCell(i,2).getValue() === 1) {
    s.getRange(i,1,1,numColumns).copyTo(target);
  }
}

}

1 个答案:

答案 0 :(得分:1)

numRows已经是一个数字(来自s.getLastRow();),因此请使用i < numRows作为for循环中的条件。

正如Serge在评论中所说,代码非常令人困惑。不需要那么多变量,并且有更有效的方法可以同时处理多个单元格。

https://developers.google.com/apps-script/best_practices#batchOperations