我很确定我在代码中做错了什么,以至于为什么它不能按照我想要的方式运行。首先,这是代码:
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”的工作表。否则,应将其隐藏。我不太擅长编码,我已经研究了上面的公式并根据需要对其进行了修改,但是我无法使其正常工作。
任何对此的见解将不胜感激。谢谢!
答案 0 :(得分:0)
COMP
的工作表。COMP
的工作表。如果我的理解是正确的,那么该修改如何?请认为这只是几个答案之一。
如果修改了脚本,则在脚本中,不比较if语句的COMPcell = 'TRUE'
的值。在这种情况下,请修改为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();
}
}
使用事件对象和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();
}
}
}