如何编写多个“hideRows”命令的脚本?

问题描述 投票:0回答:1

我的目标是创建一个复选框,在其下方隐藏每个月的几行信息。 我对编码的了解非常少,但在第一个月就成功地编写了简单的代码。

例如,在我的电子表格的第 19 行中,它显示“SEPTEMBER”,并且在“J”列中旁边有一个复选框。当此复选框被选中“TRUE”时,其下方的 30 行将被隐藏。我写的代码如下:

function onEdit(e){
  if ((e.range.columnStart != 10),(e.range.rowStart != 19) || e.value != "TRUE") return;
  SpreadsheetApp.getActiveSheet().hideRows(21,30);
}

但是,当我尝试创建相同的效果但在下个月时,我的问题出现了,在这种情况下,代码标识的单元格会有所不同(J52)。我无法让两个复选框都工作。此后我还需要在几个月内重复此过程。

除了这个困境之外,我还想知道当后续行上方的专用复选框未选中“FALSE”时如何取消隐藏后续行。然而,如果这让事情变得太复杂,那么它就不重要了。

如果有人可以提供帮助,将不胜感激,

谢谢你

google-apps-script checkbox row hide google-workspace
1个回答
0
投票

推荐:

您可以配置

onEdit
函数来捕获正在编辑的行的索引,然后隐藏其下方的 30 行。

尝试这个代码片段:

function onEdit(e) {
  var row = e.range.getRow();
  var col = e.range.getColumn();
  var value = e.range.getValue();

  if (col == 10 && value == true) {
    SpreadsheetApp.getActiveSheet().hideRows(row+1, 30);
  }
  return;
}

参考资料:

© www.soinside.com 2019 - 2024. All rights reserved.