我想在我的生产计划中实现一个代码。是否有一种基于复选框真值隐藏列的方法?假设我将复选框添加到第5行,并且希望在选中复选框时分别隐藏从M列开始的每一列。我实现代码是为了隐藏行,但是对于列,由于我对google脚本没有经验,所以它变得很棘手。
是否也可以添加自定义过滤器,同时显示所有隐藏的列,如果我想对其中一个列进行更改,然后立即隐藏它们?

发布于 2022-07-07 14:46:15
是的,这些是!如果使用onEdit函数,则可以使用e.range.isChecked()查看是否选中了复选框。在此之后,您只需要运行activeSheet.hideColumns(editedColumn, 1)来隐藏列。
--这段代码应该能起作用:
function onEdit(e) {
var activeSheet = SpreadsheetApp.getActiveSheet();
var editedRange = e.range;
var editedRow = editedRange.getRow();
var editedColumn = editedRange.getColumn();
//If the checkbox isn't checked, return
if (!editedRange.isChecked()) return;
//If the edited row isn't in row 5, return
if (editedRow != 5) return;
//If the edited column is before M, return
if (editedColumn < 12) return;
//Hide the edited column
activeSheet.hideColumns(editedColumn, 1);
}发布于 2022-07-07 15:07:22
隐藏以M开头的列
function onEdit(e) {
e.source.toast("Entry")
const sh = e.range.getSheet();
if (sh.getName() == "Enter Your Sheet Name" && e.range.columnStart > 12 && e.range.rowStart == 5 && e.value == "TRUE") {
e.source.toast("Flag1");
sh.hideColumns(e.range.columnStart);
e.range.setValue("FALSE");
}
}https://stackoverflow.com/questions/72899300
复制相似问题