首页 > 解决方案 > 在循环中获取从一行到另一行的范围

问题描述

我在编写一个脚本时遇到问题,该脚本获取从一行到另一行的范围并循环执行。我在每批数据上方有一张包含数据行和标题行的表格。我需要遍历该表上的一个范围并将数据收集到数组中。

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

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;
  }

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

标签: loopsgoogle-apps-scriptgoogle-sheetsrangerow-number

解决方案


推荐阅读