【问题标题】:Hide Rows Based on Content of a Cell - Google Spreadsheet根据单元格的内容隐藏行 - Google 电子表格
【发布时间】:2015-05-21 00:57:55
【问题描述】:

如果 Google 电子表格的单元格中有特定值,我想创建一种方法来隐藏特定数量的行。

例如

         A                   B
1   Include All options`?       Yes/No
2   Option A:                   Yes/No
3   Option B:                   Yes/no
etc.

如果单元格 B1 为“是”,则无需查看所有其他选项。但是,如果他们选择“否”,则需要有一个选项用于选择“是/否”选项。出于这个原因,我想在 option = yes 时隐藏这些行,但如果它是 No 则取消隐藏它们

【问题讨论】:

标签: javascript google-apps-script google-sheets


【解决方案1】:

此代码检测某个单元格 (B3) 是否被编辑,如果已编辑,则在该行(第 3 行)下隐藏几行:

function onEdit(e) {
  Logger.log('e.value: ' + e.value);

  var cellEdited = e.range.getA1Notation();
  Logger.log('cellEdited: ' + cellEdited);

  if (cellEdited === "B3") {
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var theSheet = ss.getActiveSheet();

    theSheet.hideRows(4, 2);
  };
}

此代码使用onEdit() 的函数名称,这意味着它监视电子表格中对单元格的编辑。如果有编辑,则函数运行。这是一个“简单”的触发器。还有用于监控电子表格的可安装触发器。

注意Logger.log() 语句。这些语句将信息打印到 LOGS 中,您可以从 VIEW、LOGS 菜单中查看。

出于您的目的:

function onEdit(e) {
  Logger.log('e.value: ' + e.value);

  var cellEdited = e.range.getA1Notation();
  Logger.log('cellEdited: ' + cellEdited);

  if (cellEdited === "B1" && e.value === "yes") {

    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var theSheet = ss.getActiveSheet();

    theSheet.hideRows(2, 2);
  };
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-09-05
    • 1970-01-01
    • 1970-01-01
    • 2013-04-19
    • 1970-01-01
    • 2018-11-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多