Loops 获取循环中从一行到另一行的范围

Loops 获取循环中从一行到另一行的范围,loops,google-apps-script,google-sheets,range,row-number,Loops,Google Apps Script,Google Sheets,Range,Row Number,我在编写脚本时遇到了一个问题,该脚本获取从一行到另一行的范围并在循环中执行。 我有一个表,每批数据上面都有数据行和标题行。 我需要在工作表上的一个范围内循环,并将数据收集到数组中 这就是它的样子,我需要做的是: row 1 - header row 2 - data row 3 - header row 4 - data row 5 - data row 6 - data Array1应该是第1行和第2行,array2应该是第3、4、5和6行,依此类推。我应该在这张纸上有大约15个数组。数据不

我在编写脚本时遇到了一个问题,该脚本获取从一行到另一行的范围并在循环中执行。 我有一个表,每批数据上面都有数据行和标题行。 我需要在工作表上的一个范围内循环,并将数据收集到数组中

这就是它的样子,我需要做的是:

row 1 - header
row 2 - data
row 3 - header
row 4 - data
row 5 - data
row 6 - data
Array1应该是第1行和第2行,array2应该是第3、4、5和6行,依此类推。我应该在这张纸上有大约15个数组。数据不断变化,每个标题下的行号和数据行数也是如此

  var sourceID = "source spreadsheet ID";
  var source = SpreadsheetApp.openById(sourceID);
  var sourcesheet = source.getSheetByName("ANALYSIS REPORT"); // the sheet the data is on

  var SWrowss = findCellForSW(); // start row - calling from another function, this will ALWAYS be the start row of range
  var CQrowss = sourcesheet.getLastRow(); // last row
  var noRows = CQrowss - SWrowss; // gets number of rows in range
  var colss = sourcesheet.getRange(SWrowss,6,noRows,1).getValues(); // range of column the headers are in - headers are in column F, data starts in column E

  var arrayS = getArrays(sourceID); // calling function to get variables
  var rowNumbers = arrayS[1]; // row number of data (row 2,4,5,6 in example)
  var rowNames = arrayS[0]; // string for header names (row 1 and 3 in example)
  var nameRowN = arrayS[2]; // row number of headers (row 1 and 3 in example)
  var colssR = sourcesheet.getRange(SWrowss,6,noRows,1); // range of the column headers are in
  var firstRow = colssR.getRow()
  var numRows = colssR.getNumRows(); // gets number of rows in array

  for (var i = 0; i < numRows; i++) { // gets the correct row numbers
    var absoluteRow = firstRow + i;
  }
var sourceID=“源电子表格ID”;
var source=SpreadsheetApp.openById(sourceID);
var sourcesheet=source.getSheetByName(“分析报告”);//数据所在的表
var SWrowss=findCellForSW();//开始行-从另一个函数调用,这将始终是范围的开始行
var CQrowss=sourcesheet.getLastRow();//最后一排
var noRows=CQrowss-SWrowss;//获取范围中的行数
var colss=sourcesheet.getRange(SWrowss,6,noRows,1).getValues();//标题所在列的范围-标题位于F列,数据从E列开始
var arrayS=getArrays(sourceID);//调用函数以获取变量
var rowNumbers=数组[1];//数据行数(示例中的第2、4、5、6行)
var rowNames=数组[0];//标题名称的字符串(示例中的第1行和第3行)
var nameRowN=数组[2];//标题行数(示例中的第1行和第3行)
var colssR=sourcesheet.getRange(SWrowss,6,noRows,1);//列标题的范围在中
var firstRow=colssR.getRow()
var numRows=colssR.getNumRows();//获取数组中的行数
for(var i=0;i

因此,目前我几乎拥有所有内容的行号,但无法编写工作循环以获取必要的数据。

您能分享一份经过消毒的工作表副本吗?太好了!您是否也可以共享您的脚本副本,因为它已从副本中删除,因此我看不到像
findCellForSW()
这样的函数是如何工作的。对不起,我一开始就应该这样做。我也分享了我的全部代码!