Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/447.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 谷歌工作表中的自定义文本限制_Javascript_Google Apps Script_Google Sheets - Fatal编程技术网

Javascript 谷歌工作表中的自定义文本限制

Javascript 谷歌工作表中的自定义文本限制,javascript,google-apps-script,google-sheets,Javascript,Google Apps Script,Google Sheets,我正在寻找一些解决方案的自定义限制在谷歌表。 示例:如果单元格A2不包含,则限制单元格B2进行编辑。就我在谷歌搜索时所知,我需要以某种方式处理TextValidationBuilder,但我没有脚本技能,到目前为止还没有找到任何示例。 你知道怎么设置吗 更新: 我需要对整行进行此限制,因此如果A2为否,则整个2将被禁用以进行编辑 列A只能由指定的用户编辑,因此不是每个人都可以访问它 我正在尝试做的截图 解决方案: 对于完整列A2:A、B2:B,直到最后一行内容: function myFunct

我正在寻找一些解决方案的自定义限制在谷歌表。 示例:如果单元格A2不包含,则限制单元格B2进行编辑。就我在谷歌搜索时所知,我需要以某种方式处理TextValidationBuilder,但我没有脚本技能,到目前为止还没有找到任何示例。 你知道怎么设置吗

更新:

我需要对整行进行此限制,因此如果A2为否,则整个2将被禁用以进行编辑 列A只能由指定的用户编辑,因此不是每个人都可以访问它 我正在尝试做的截图 解决方案: 对于完整列A2:A、B2:B,直到最后一行内容:

function myFunction() {   
  const ss = SpreadsheetApp.getActive();  
  const sh = ss.getSheetByName('Sheet1');     
  const checkA = sh.getRange('A2:A'+sh.getLastRow()).getValues().flat();
  const me = Session.getEffectiveUser();
  checkA.forEach( (ch,index) =>{                
  if (ch === 'No')
     {
       var protection = sh.getRange(index+2,2).protect()    
       protection.addEditor(me);
       protection.removeEditors(protection.getEditors());
       if (protection.canDomainEdit()) {
          protection.setDomainEdit(false);
       }
     }});
}
参考资料:
我认为这个类更符合你的要求。不确定我做错了什么,但玩过之后,我仍然可以编辑其他单元格:@KirillKuchin你可以编辑,因为你是所有者。其他用户将无法编辑这些单元格。@KirillKuchin如果A2为否,您希望用户只能编辑B2吗?我认为您只想保护B2不被编辑。@KirillKuchin如果您想保护B2以外的所有单元格,请使用我的第一个解决方案。好吧,从不同的帐户尝试过,但我仍然可以编辑这些单元格。我还需要给一些权限,像一些人可以编辑,但其他人不能。并限制整行的版本。我在这里做了一个样品