简体   繁体   English

如果单元格包含文本,则保护行

[英]Protect row if cell contains a text

I have a sheet to record some expenses, I shared the sheet with someone but it has a column for my review and I'd like to protect the row if the Columne contains "Approved".我有一张表来记录一些费用,我与某人共享了该表,但它有一列供我查看,如果该列包含“已批准”,我想保护该行。

I'd like to protect it using range protect if possible如果可能的话,我想使用范围保护来保护它

工作表预览

Protect approved rows保护批准的行

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); 
      }
    }
  });
}

Range.Protect() 范围.保护()

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM