如何循环浏览表格

问题描述 投票:0回答:1

我有一个非常简单的脚本,映射到自定义菜单:

function CollapseGroups() {
  
 SpreadsheetApp.getActiveSheet().collapseAllRowGroups();
 SpreadsheetApp.getActiveSheet().collapseAllColumnGroups();
 
}

它运行完美。但我现在想将其调整为每晚在每张纸上运行。我知道

getActiveSheet()
无法与时间触发器配合使用,因为不会有活动工作表。

当我尝试按 id

getspreadsheet
并循环遍历所有工作表时,
.CollapseAllRowGroups()
出错。我没有能力找出问题所在

google-sheets google-apps-script triggers
1个回答
0
投票

使用

Spreadsheet.getSheets()
Array.forEach()
,如下所示:

'use strict';

/**
* Collapses row and column groups across all tabs in a spreadsheet.
*
* @param {Spreadsheet} ss Optional. The spreadsheet where to collapse all groups.
*/
function collapseAllGroupsInSpreadsheet(ss = SpreadsheetApp.getActive()) {
  // version 1.0, written by --Hyde, 28 August 2024
  //  - see https://stackoverflow.com/a/78922864/13045193
  const actions = ['collapseAllRowGroups', 'collapseAllColumnGroups'];
  ss.getSheets().forEach(sheet => {
    actions.forEach(action => {
      try {
        sheet[action]();
      } catch (error) {
        ss.toast(error.message);
        console.log(error);
      }
    });
  });
}

参见 Spreadsheet.getSheets()Array.forEach()

© www.soinside.com 2019 - 2024. All rights reserved.