为了账号安全,请及时绑定邮箱和手机立即绑定

根据复选框显示和隐藏行

根据复选框显示和隐藏行

陪伴而非守候 2021-09-17 13:41:40
我首先要说的是,我对编码非常缺乏经验,因此将不胜感激任何帮助!我试图根据是否勾选复选框来显示/隐藏行。例如,我在 A5 中有一个复选框 - 如果未选中,我希望它隐藏 6:18 行,如果选中,我希望它显示 6:18 行。A19 中的复选框也是如此,分别隐藏/显示 20:26 行。A27 用于行 28:37 等。我找到了以前的论坛帖子,其中我将链接下面的代码,但是第一个复选框隐藏所有行(例如,如果未选中 A5,则隐藏行 6:18、20:26 和 28:37。当然后检查它,它只显示 6:18 行。function onEdit(e) {  var cfg = { // Please set this object.    A5: {startRow: 6, endRow: 18},    A19: {startRow: 20, endRow: 26},    A27: {startRow: 28, endRow: 37},  };  var activeRange = e.range.getA1Notation();  var ranges = Object.keys(cfg);  if (cfg[activeRange]) {    var sheet = e.source.getActiveSheet();    var values = sheet.getRange(ranges[0] + ":" + ranges[ranges.length - 1]).getValues();    values.forEach(function(e, i) {      if (e[0]) {        sheet.showRows(cfg[ranges[i]].startRow, cfg[ranges[i]].endRow - cfg[ranges[i]].startRow);      } else {        sheet.hideRows(cfg[ranges[i]].startRow, cfg[ranges[i]].endRow - cfg[ranges[i]].startRow);      }    });  }}如前所述,第一个复选框隐藏所有行(例如,如果未选中 A5,则隐藏行 6:18、20:26 和 28:37。然后选中时,它仅显示行 6:18。
查看完整描述

1 回答

?
慕妹3146593

TA贡献1820条经验 获得超9个赞

  • 当未选中“A5”复选框时,您想隐藏从 6 到 18 的行。

  • 当未选中“A19”复选框时,您想隐藏 20 到 26 行。

  • 当未选中“A27”复选框时,您想隐藏 28 到 37 行。

  • 当复选框被选中时,您想要显示行。

  • 您想通过 Google Apps 脚本使用 OnEdit 事件触发器实现上述目标。

如果我的理解是正确的,这个修改怎么样?请将此视为几个答案之一。

从:

var values = sheet.getRange(ranges[0] + ":" + ranges[ranges.length - 1]).getValues();

values.forEach(function(e, i) {

  if (e[0]) {

到:

var values = sheet.getRange(ranges[0] + ":" + ranges[ranges.length - 1]).getValues().filter(String); // Modified

values.forEach(function(e, i) {

  if (e[0] === true) { // Modified

如果我误解了您的问题并且这不是您想要的结果,我深表歉意。


查看完整回答
反对 回复 2021-09-17
  • 1 回答
  • 0 关注
  • 286 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号