首页 > 解决方案 > 谷歌脚本隐藏谷歌表格中的行

问题描述

我有带有产品类型列(具有以下下拉值类型 1、类型和类型)和行的 Google 表,如图所示。我正在尝试使用谷歌脚本来实现仅显示基于产品类型值的行(如果我选择类型 1,我想隐藏在同一列中具有类型 2 和类型 3 值的行)。在这里我不能使用过滤器,因为某些行中有一些标题。任何帮助将不胜感激。

截屏

在此处输入图像描述

标签: javascriptgoogle-apps-scriptgoogle-sheetsscripting

解决方案


您想要隐藏或显示行,具体取决于单元格 A1 中的选定类型

这是一个自动运行onEdit的简单脚本,即每次编辑电子表格中的单元格时。它使用方法showRows()hideRows()并将 A 列中的条目与单元格 A1 中的值进行比较。它隐藏条目包含单词“类型”但不是所选类型的所有行。

function onEdit() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName("Sheet1"); // adapt to your needs
  var toShow=sheet.getRange("A1").getValue();
  var startRow=10 //adapt to your needs
  var lastRow = sheet.getLastRow();
  Logger.log(lastRow);
  for (i = startRow; i <= 320; i++) {
    var type = sheet.getRange("A" + i).getValue();
    if (type == toShow||toShow=="Product Type") {
      sheet.showRows(i);
      Logger.log('row '+i+' shown');
    }
  }
  for (i = startRow; i <= lastRow; i++) {
    var type = sheet.getRange("A" + i).getValue();
    if (type != toShow && type.indexOf('Type')!=-1) {      
      Logger.log(i+'i hidden');
      sheet.hideRows(i);
    }
  }
}

您需要将脚本绑定到电子表格并手动运行一次 - 以触发授权流程。


推荐阅读