Google Apps Script: группировка листов Google - PullRequest
0 голосов
/ 07 июня 2018

Как остановить цикл for после продолжения, когда скрипт (ниже) достигает последней строки с данными?

Как заставить каждую группу свернуть, а не только первую?

Я не уверен, как включить .getLastRow()-1 в скрипт.Мне нужно numRows как 179, потому что это количество строк, которые я хочу сгруппировать, но просто не знаю, как завершить сценарий.Я изменил один из новых «записанных макросов» и немного поработал в обратном направлении.Кроме того, первая группа рушится, как и предполагалось, после того, как она была сгруппирована, а остальные нет.Любая помощь будет оценена!

function test2() {
var spreadsheet = SpreadsheetApp.getActive();
var sheet = spreadsheet.getActiveSheet();
var currentRow = 3;
var startColumn= 1;
var numRows = 179;
var numColumns= sheet.getMaxColumns();
for (i = 0; i < numRows; i++) {
  sheet.getRange(currentRow, startColumn, numRows, numColumns).activate()
  .shiftRowGroupDepth(1);
  spreadsheet.getActiveSheet().getRowGroup(3, 1).collapse();
currentRow = currentRow+180
  }
};

1 Ответ

0 голосов
/ 07 июня 2018

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

function test2() {
var spreadsheet = SpreadsheetApp.getActive();
var sheet = spreadsheet.getActiveSheet();
var currentRow = 3;
var startColumn= 1;
var numRows = 179;
var numColumns= sheet.getMaxColumns();
var numGroups = 28;

for (i = 0; i < numGroups; i++) {
  sheet.getRange(currentRow, startColumn, numRows, numColumns).activate()
  .shiftRowGroupDepth(1);
  spreadsheet.getActiveSheet().getRowGroup(currentRow, 1).collapse();
  currentRow = currentRow+180
 }
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...