Google表格隐藏多张表格中的行

时间:2019-02-01 00:17:36

标签: google-apps-script google-sheets

我对整个脚本编码工作还是陌生的,在完善当前正在运行的脚本时遇到了麻烦。我找到了我正在使用的代码here。我能够对其进行修改以使其在工作表的E列上运行,并且在该工作表上可以很好地工作。

我想让它在工作簿中的多张纸上运行,但是我对使它起作用的编码语言/语法不够熟悉。我曾尝试从具有类似目标的其他帖子中提取一些代码,只是为了使以前运行的部分代码出现脚本错误。

代码如下:

function onOpen() {
    var s = SpreadsheetApp.getActive()
        .getSheetByName('BV421');
    s.showRows(1, s.getMaxRows());
    s.getRange('E:E')
        .getValues()
        .forEach(function (r, d) {
            if (r[0] !== '' && r[0].toString()
                .charAt(0) == 0) s.hideRows(d + 1)
        });
}

我知道问题(至少部分是).getSheetByName('BV421')造成的,但是我不确定如何选择多个表。我还有其他工作表(例如Alexafluor488,PerCP,FITC等),但我不想在工作簿中的所有工作表上运行脚本。

我们将不胜感激!

2 个答案:

答案 0 :(得分:0)

示例代码:

    function getSheets(){

    var ss = SpreadsheetApp.getActiveSpreadsheet(); //Gets the Spreadsheet
    var sheets = ss.getSheets(); //Gets all the sheets in the spreadsheet

      //For the number of sheets, do the following:
      for (var i = 0; i < sheets.length; i++){

      var currentSheet = sheets[i];

      Logger.log(currentSheet.getRange(1, 1, 1, 1).getValue());


      }

    }

如果您不想从第一张纸开始,请更改“ i”的值。 如果您不希望脚本遍历所有工作表,则将sheets.length更改为固定值。

希望这会有所帮助。

编辑: 其他成员请随时编辑此帖子,以添加文档链接或对其进行更好的解释。 (有我需要参加的工作。)

答案 1 :(得分:0)

示例代码2:

SELECT id, aggregate_id, aggregate_update, detection_time
FROM report.report_table R1
WHERE table_name NOT LIKE 'AGGREGATE_ALERT_EVENT'
ORDER BY
    MAX(aggregate_update) OVER (PARTITION BY aggregate_id),
    MAX(detection_time) OVER (PARTITION BY aggregate_id) DESC,
    aggregate_id,
    detection_time DESC;

如果获得工作表引用- s ,则可以为数组中列出的每个工作表重复代码片段。