我有一张表
第2-> 4行中的数据存在:
如果用户打开文件,则如果行存在数据,则工作表将锁定。
用户输入第5和第6行,关闭文件
但是用户再次打开文件,文件仅锁定第2->行,第4,第5和第6行未锁定。
这是我的function onOpen(e)
function onOpen(e){
var oSheet=SpreadsheetApp.getActiveSheet();
for(var i=2;i<10;i++)
{
if(oSheet.getRange(i, 2).getValue() !="")
{
var protection = oSheet.getRange(i, 2).protect().setDescription('protectedrange');
var me = Session.getEffectiveUser();
protection.addEditor(me);
protection.removeEditors(protection.getEditors());
if (protection.canDomainEdit()) {
protection.setDomainEdit(false);
}
}
}
}
为什么不能锁定用户输入的值?
答案 0 :(得分:1)
像onOpen这样的简单触发器在活动用户是电子表格的所有者时可以执行某些操作,但是在活动用户是编辑者时不能执行相同的操作。
某些事情是那些需要授权的事情,例如保护范围。
使用可安装的触发器,而不是使用简单的触发器。
参考