假设我有一个Google表,其中A:G列是下拉列表。
我想添加一个选项,使用H列中的复选框锁定A:G列中的选项,在该栏中选中该复选框将锁定A:G列,从而无法编辑它们(除非取消选中H列中的复选框)。
在谷歌单张上能做到这一点吗?
发布于 2022-07-13 02:58:23
我创建了以下脚本,该脚本基于很久以前在StackOverflow中的一个响应中找到的以前的脚本。
function onEdit(e)
{
var editRange = {
top : 1,
bottom : 1000,
left : 2,
right : 2
};
var cell = e.range;
// Exit if we're out of range
var thisRow = cell.getRow();
if (thisRow < editRange.top || thisRow > editRange.bottom) return;
var thisCol = cell.getColumn();
if (thisCol < editRange.left || thisCol > editRange.right) return;
var val1 = e.range.getRow();
var val2 = e.range.getColumn();
var validation = SpreadsheetApp.getActive().getSheetByName("Testing Sheet").getRange(val1, val2-1);
if(cell.isChecked()){
var rule = SpreadsheetApp.newDataValidation().requireValueInList(['Red', 'Blue']).build();
}
else{
var rule = SpreadsheetApp.newDataValidation().requireValueInList(['Black', 'White']).build();
}
validation.setDataValidation(rule);
}
我在开始时修改了范围,因此它只识别B列中的更改,但您只需将其更改为8
for column H
即可。由于脚本使用onChange
触发器,所以首先需要验证的是,如果编辑是在复选框所在的范围内进行的,那么我将根据复选框中的值设置要更改的单元格的范围,并根据条件创建数据验证规则。
在您的示例中,您只需为其他列添加更多validation
变量的其余范围,并根据将要编辑的单元格将列参数更改为-2
、-3
或-4
,然后根据下拉列表中需要的数据创建更多的验证规则。
下面是一个如何工作的例子:
参考文献:
https://stackoverflow.com/questions/72956780
复制相似问题