【发布时间】:2019-08-19 23:55:59
【问题描述】:
首先我要说我对编码非常缺乏经验,所以任何帮助都将不胜感激!
我正在尝试根据是否选中复选框来显示/隐藏行。例如,我在 A5 中有一个复选框 - 如果未选中,我希望它隐藏第 6:18 行,如果选中,我希望它显示第 6:18 行。
A19 中的复选框也是如此,分别隐藏/显示 20:26 行。 28:37 等行的 A27。
我找到了以前的论坛帖子,我将在其中链接下面的代码,但是第一个复选框隐藏了所有行(例如,如果未选中 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.
【问题讨论】:
标签: javascript google-apps-script google-sheets triggers javascript-objects