我使用Google电子表格中的脚本编辑器在条件保护单元上创建了一个小代码。该代码的目的是仅在其上方的单元格被填充后才允许输入到另一个单元格。例如。当B2填满时,您只能输入B3到B13。我在那里写了一些代码,并且确实在项目中使用了触发器。但是有些代码似乎对我不起作用,并且触发器中记录了很多错误率。我为该函数创建了2个触发器,其中1个是打开触发器,另一个是更改触发器。寻求建议。
function cellcheck() {
// Protect range A1:B10, then remove all other users from the list of editors.
var ss = SpreadsheetApp.getActive();
var column = "B";
var lastrow = ss.getLastRow();
// Ensure the current user is an editor before removing others. Otherwise, if the user's edit
// permission comes from a group, the script will throw an exception upon removing the group.
for (i=2;i<=lastrow;i++){
var checking = ss.getRange(i,2).getValue();
if (checking == "") {
var FBlock = i+10;
// var LBlock = i+10;
var range = ss.getRange(column + FBlock + ':'+column + lastrow);
var protection = range.protect().setDescription('Sample protected range');
}
else {
var lastUnblock= i+10
var unprotected = ss.getRange([column + i + ':'+column + lastUnblock])
protection.setUnprotectedRanges([unprotected]);
}
var me = Session.getEffectiveUser();
protection.addEditor(me);
protection.removeEditors(protection.getEditors());
if (protection.canDomainEdit()) {
protection.setDomainEdit(false);
}
}
}