首页 > 解决方案 > Google Script - 如果列中的单元格包含特定值,则隐藏列

问题描述

如果该列中的单元格包含字母“S”,我正在尝试隐藏 Google 表格中的所有列,我正在检查第 6 行,该行具有一周中每一天的首字母并希望能够显示和隐藏周末列 A6 :G6 有 M,T,W,T,F,S,S

9999 的原因是由于这张表包含多个星期,我正在尝试查看所有这些。

function Hide() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getActiveSheet();
  var data = sheet.getDataRange();
  var lastCol = data.getLastColumn()+1;

  for(var i = 1; i < lastCol - 9999; i++) {
    if(data.getCell(6, 9999 + i).getValue() === "S") {
      sheet.hideColumns(9999 + i);
    }
  }
};

这是我到目前为止所拥有的,但它似乎没有做任何事情,任何人都可以帮助我了解我所缺少的东西,因为我一直在环顾四周并且找不到任何可以帮助我解决这个问题的东西?

谢谢!!

标签: google-apps-scriptgoogle-sheetsgoogle-sheets-macros

解决方案


试试这个。Google Apps 脚本基本上是 Javascript。这就是我将循环遍历列的方式,因为工作表的使用区域是动态更改的,然后它将在最后使用的列处停止。

function Hide() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getActiveSheet();
  // get the entire 6th Row
  var range = sheet.getRange("6:6");
  // get number of columns to loop through
  var num_cols = range.getNumColumns();
  // loop through columns and check value one by one
  // if value is equal to "S", then hide the column
  for (var i = 1; i <= num_cols; i++) {
    var value = sheet.getRange(6,i).getValue();
    if (value == "S") {
      sheet.hideColumns(i);
      };
    }
  }

推荐阅读