我一直在阅读有关如何从我的
onEdit()
中排除标题行的各种帖子。我已经阅读过 offset()
的示例,甚至在其他函数中使用 shift()
。这个特定的功能是当一行中的范围具有值时生成一个复选框。
我分别尝试了以下方法:
checkboxCell.offset(1,0)
checkboxCell.shift()
这些最终会失败,并显示消息说它们不是函数。
有人可以指导我如何做到这一点吗?
function onEdit(e) {
let sheet = e.source.getActiveSheet();
const checkboxCell = sheet.getRange(e.range.rowStart, 1);
let editedRow = sheet.getRange(e.range.rowStart, 2, 1, 3).getValues().flat();
editedRow = editedRow.filter(x => x != '');
if (editedRow.length == 3) {
checkboxCell.insertCheckboxes();
} else {
checkboxCell.clearDataValidations();
checkboxCell.clearContent();
}
}
添加另一个条件语句以限制在
e.range.rowStart
设置为 1(即第一行)时添加复选框
完整代码:
function onEdit(e) {
let sheet = e.source.getActiveSheet();
const checkboxCell = sheet.getRange(e.range.rowStart, 1);
let editedRow = sheet.getRange(e.range.rowStart, 2, 1, 3).getValues().flat();
editedRow = editedRow.filter(x => x != '');
if (editedRow.length == 3 && e.range.rowStart != 1) {
checkboxCell.insertCheckboxes();
} else {
checkboxCell.clearDataValidations();
checkboxCell.clearContent();
}
}
修改:
从
(editedRow.length == 3)
到(editedRow.length == 3 && e.range.rowStart != 1)