Google Apps脚本:Google Sheet Grouping

时间:2018-06-06 21:02:30

标签: google-apps-script google-sheets

如果脚本(下面)到达带有数据的最后一行,如何停止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 :(得分:1)

好的,对于遇到这个问题的其他人来说,这就是我找到的。我觉得必须有一个比指定我最终想要制作的组的确切数量更简单的方法,但它有效。

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