Используйте переменную переменную, чтобы определить диапазон в цикле - PullRequest
0 голосов
/ 06 января 2020

Я хотел бы извлечь несколько диапазонов в пределах диапазона в электронной таблице. Количество рядов постоянно меняется. Это то, что я собираюсь сделать. Начальная строка и количество строк всегда будут разными.

var sourcesheet = ss.getSheetByName("sheet name");
var nameRowN = starting rows already in an array
var sor = number of rows in each array already calculated and put in an array

 var ranges = [];
   for (var m = 0; m < sourcesheet.length; m++) {
   ranges = sourcesheet.getRange(nameRowN[m],5,sor[m],29).getValues();
   }

Поэтому диапазоны должны включать несколько мини-массивов. Для l oop проходит через m, затем m + 1 и так далее. Я на правильном пути? Можно ли добиться того, что я ищу таким образом?

Редактировать: Я могу получить диапазон за пределами l oop и заменить переменную m:

ranges = sourcesheet.getRange(nameRowN[1],5,sor[1],29).getValues();

1 Ответ

1 голос
/ 07 января 2020

Если ваша цель - перебрать все строки с содержимым - вы можете использовать метод getLastRow () .

Пример:

var lastRow=sourcesheet.getLastRow();
for (var m = 0; m < lastRow; m++) {
  //do what you want
}

Другая возможность использовать getDataRange () в сочетании с getValues() и length.

Образец:

var rangeLength=spreadsheet.getDataRange().getValues().length;
for (var m = 0; m < rangeLength; m++) {
  //do what you want
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...