Google 工作表:在多个工作表中隐藏行

Google Sheets: Hide rows in multiple sheets

我正在尝试隐藏多个 sheet 中的行。所以我有 6 个 sheets,但是有 4 个相似的 sheets,另一个更可能是那 4 个 sheets 的摘要,另一个是 sheet 用一个按钮。这里有一个示例供您参考:LINK

如果我将 HIDE ROWS 按钮一个接一个地放在 sheet 上,这是可行的,但是我需要花费很多时间来完成它,因为我需要将它放在不同的跨页上sheets。我的想法是在每个 spreadsheet 上放置一个按钮,或者在打开它时,空行将被隐藏。 SHOW ROWS 按钮与它完美配合。

这是我正在使用的脚本:

问题:

我希望有人能帮助我。提前致谢!

我相信你的目标如下。

  • 使用您的脚本,您希望在单击按钮时 运行 脚本在 Google 传播sheet 中持续几个 sheet 秒。
    • 在您的示例 Spreadsheet 中,您想要 运行 "MS_Q1", "MS_Q2", "MS_Q3", "MS_Q4", "SUMMARY" 的 sheet 的脚本。
    • 对于“SUMMARY”sheet,起始行与其他行不同。这是 7.

修改点:

  • 在这种情况下,对于,我建议修改功能script_HideRows
  • 首先,您要运行 脚本的sheet 名称已设置。并且,使用 sheet 名称,脚本是 运行.

以上几点反映到脚本中,就变成了下面的样子。

修改后的脚本:

请修改script_HideRows如下。

function script_HideRows() {
  var sheetNames = ["MS_Q1", "MS_Q2", "MS_Q3", "MS_Q4", "SUMMARY"];  // Please set the sheet names here. In this case, 4 sheets are used.
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  ss.getSheets().forEach(sheet => {
    var sheetName = sheet.getSheetName();
    if (sheetNames.includes(sheetName)) {
      if (sheetName == "SUMMARY") {  // When the sheet is "SUMMARY", the start row is changed.
        startRow = 7;
      }
      var numRows = sheet.getLastRow();
      var elements = sheet.getRange(startRow, colToCheck, numRows).getValues();
     
      for (var i=0; i<(numRows - startRow); i++) {
        if (shouldHideRow(sheet, i, elements[i][0])) {
          sheet.hideRows(startRow + i);
        }
      }
      // Hide the rest of the rows
      var totalNumRows = sheet.getMaxRows();
      if (totalNumRows > numRows)
        sheet.hideRows(numRows+1, totalNumRows - numRows);
    }
  });
}

注:

  • 如果复制并粘贴以上脚本后脚本仍未更改,请重新部署 Web 应用程序为新版本。

参考文献: