google-apps-script - 为什么不能锁定用户输入的值?
问题描述
我有一个电子表格
存在来自第 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);
}
}
}
}
为什么不能锁定用户输入的值?
解决方案
当活动用户是电子表格的所有者时,像 onOpen 这样的简单触发器可以做某些事情,但当活动用户是编辑者时不能做同样的事情。
某些事情是那些需要授权的事情,例如保护范围。
不要使用简单的触发器,而是使用可安装的触发器。
参考
推荐阅读
- python - Pandas 用 nan 替换所有列值
- alfresco - 如何在Activiti中正确地通过CallActivity传递变量?
- python - 使用 Regex 和 Python 提取字符串
- html - 为什么为 SVG 声明 viewBox 与在具有适当尺寸的 SVG 元素的符号元素上声明它不同?
- python - Python列表分配索引超出范围错误
- php - 不推荐使用整数注册日期声明,请改用 DateTimeImmutable 对象
- c - 带有 goto 的扩展 asm,包括来自 gcc 文档的示例,无法编译
- r - 在重叠条形图中为每个变量绘制多条正态曲线
- python - Pandas Dataframe 计算每天的时差
- javafx - 将样式表添加到 javafx.scene.Scene 与查看 javafx.scene.Parent 有什么区别?