【问题标题】:Google script - Hide/Unhide google sheet based on checkbox on another sheet谷歌脚本 - 根据另一张纸上的复选框隐藏/取消隐藏谷歌表格
【发布时间】:2019-06-26 15:16:00
【问题描述】:

我很确定我在代码中做错了什么,为什么它没有按照我想要的方式运行。首先,这是代码:

function onEdit(a) {

var sheet = a.source.getActiveSheet();
var aa = SpreadsheetApp.getActiveSpreadsheet();
var COMP = aa.getSheetByName("COMP");
var COMPcell = sheet.getRange('B6').getValue();
if(COMPcell = 'TRUE'){COMP.showSheet();}else{COMP.hideSheet();}
}

在这里,我在“活动工作表”(名为每月摘要)的单元格 B6 上有一个复选框。选中后(因此值为 TRUE),我希望出现名为“COMP”的工作表。否则,它应该被隐藏起来。我不太擅长编码,我研究了上述公式并根据我的要求对其进行了修改,但我无法让它发挥作用。

对此的任何见解将不胜感激。谢谢!

【问题讨论】:

  • 如果COMP 工作表被隐藏并且在单元格“B6”处选中复选框时,工作表将通过 OnEdit 事件的简单触发器显示。我认为你的脚本有效。那我能问一下I can't get it to work.的详细信息吗?
  • @Tanaike,只要 COMP 表被隐藏并且复选框未被选中,它最初就可以工作。因此,当我选中该框时,会出现 COMP 表。但是,当我取消选中该框时,它不会消失。同样,当 COMP 表被隐藏但复选框被选中时,当我取消选中该框时,会出现 COMP 表,这是不应该的。我希望只要选中该框就显示该工作表,但在选中该框时不显示该工作表。我在这里创建了一个测试文件来演示这个问题:docs.google.com/spreadsheets/d/…
  • 感谢您回复和分享示例电子表格。我提出修改后的脚本作为答案。你能确认一下吗?如果我误解了您的问题并且这不是您想要的结果,我深表歉意。

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


【解决方案1】:
  • 您希望仅在选中“B6”复选框时才显示COMP 的工作表。
  • 当“B6”复选框未选中时,您想隐藏COMP的工作表。

如果我的理解是正确的,那么这个修改呢?请认为这只是几个答案之一。

修改脚本一:

如果你的脚本被修改了,在你的脚本中,COMPcell = 'TRUE'的if语句没有比较值。在这种情况下,请修改为COMPcell === true。反映这一点的修改脚本如下。

function onEdit(a) {
  var sheet = a.source.getActiveSheet();
  var aa = SpreadsheetApp.getActiveSpreadsheet();
  var COMP = aa.getSheetByName("COMP");
  var COMPcell = sheet.getRange('B6').getValue();
  if (COMPcell === true) { // Modified
    COMP.showSheet();
  } else {
    COMP.hideSheet();
  }
}

修改脚本2:

当使用事件对象和isChecked()时,你的脚本也可以修改如下。在这个脚本中,只有当“B6”的复选框被编辑时,脚本才起作用。

function onEdit(a) {
  var range = a.range;
  if (range.getA1Notation() == "B6") {
    var COMP = a.source.getSheetByName("COMP");
    if (range.isChecked()) {
      COMP.showSheet();
    } else {
      COMP.hideSheet();
    }
  }
}

参考资料:

【讨论】:

  • 谢谢!第一次修改有效,但我还没有真正检查过第二次修改。再次感谢! :)
  • @J.Mapz 感谢您的回复。很高兴您的问题得到解决。
猜你喜欢
  • 1970-01-01
  • 2018-04-13
  • 2020-04-02
  • 2023-03-10
  • 2022-10-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多