Google apps script 如果单元格包含文本,则保护行
我有一张记录一些费用的表,我与某人共享了该表,但它有一列供我审阅,如果该列包含“已批准”,我希望保护该行 如果可能的话,我想用射程保护来保护它Google apps script 如果单元格包含文本,则保护行,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我有一张记录一些费用的表,我与某人共享了该表,但它有一列供我审阅,如果该列包含“已批准”,我希望保护该行 如果可能的话,我想用射程保护来保护它 保护已批准的行 function protectApprovedRows() { var ss=SpreadsheetApp.getActive(); var sh=ss.getSheetByName('name'); var sr=2; var sc=1; var vs=sh.getRange(sr,sc,sh.getLastRow
保护已批准的行
function protectApprovedRows() {
var ss=SpreadsheetApp.getActive();
var sh=ss.getSheetByName('name');
var sr=2;
var sc=1;
var vs=sh.getRange(sr,sc,sh.getLastRow()-sr+1,sh.getLastColumn()-sc+1).getValues();
var me = Session.getEffectiveUser();
vs.forEach(function(r,i){
if(r[4]=="Approved") {
var protection=sh.getRange(i+sr,sc,1,sh.getLastColumn()-sc+1).protect();
protection.addEditor(me);
protection.removeEditors(protection.getEditors());
if (protection.canDomainEdit()) {
protection.setDomainEdit(false);
}
}
});
}
感谢您的脚本,我对google脚本完全是新手,我尝试使用该脚本,但仍然没有受到保护,我已将工作表名称更改为“Expensis”,如果获得批准,仍然没有受到保护,列为E,我可以看到您使用了r[4],因为excel计数从0开始。有什么建议吗?r[4]是E列,您如何知道它没有受到保护。它不会阻止所有者进行编辑。我已经添加了另一封邮件进行测试,我已经编辑了代码,现在它可以工作了,但是如何在编辑E列后使其自动执行?
var protection=sh.getRange(I+sr,sc,1,sh.getLastColumn()-sc+1)。protect().setDescription('cannotedit approved');//在删除其他用户之前,请确保当前用户是编辑器。否则,如果用户的编辑//权限来自某个组,则脚本会在删除该组时引发异常。var me=Session.getEffectiveUser();保护。加法器(me);protection.removeditors(protection.getEditors());如果(protection.canDomainEdit()){protection.setDomainEdit(false);}
这就是我添加的代码