Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.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
Google apps script 如何防止基于另一个值在单元格中进行更改,并显示有关尝试的警报框?_Google Apps Script_Google Sheets - Fatal编程技术网

Google apps script 如何防止基于另一个值在单元格中进行更改,并显示有关尝试的警报框?

Google apps script 如何防止基于另一个值在单元格中进行更改,并显示有关尝试的警报框?,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我有一列(第3列)有一个下拉列表。其中一个选项悬而未决。在下一个单元格(第4列)中有另一个下拉列表,NotSubmited是选项之一 现在我想要的是,如果第3列有挂起,我应该不能更改第4列中的下一个单元格。简而言之,如果列3已挂起,则无法更改NotSubmited 然后显示一条弹出消息,说明有关此操作的一些信息。我尝试了以下操作,但它显示了消息,但我无法阻止更改Col 4。我可以很容易地更改或删除列4 如何阻止这一切 function onEdit(event){ var actv

我有一列(第3列)有一个下拉列表。其中一个选项悬而未决。在下一个单元格(第4列)中有另一个下拉列表,NotSubmited是选项之一

现在我想要的是,如果第3列有挂起,我应该不能更改第4列中的下一个单元格。简而言之,如果列3已挂起,则无法更改NotSubmited

然后显示一条弹出消息,说明有关此操作的一些信息。我尝试了以下操作,但它显示了消息,但我无法阻止更改Col 4。我可以很容易地更改或删除列4

如何阻止这一切

function onEdit(event){

      var actvCell = event.range.getSheet().getActiveCell();

     if(actvCell.getColumn() == 3 && event.value=="PENDING"){   
        Browser.msgBox('You cannot make changes if payment is pending');
     }
   }

问题

您希望根据活动单元格的值停止编辑另一个单元格

解决方案

您需要了解
保护
类如何为
电子表格
服务工作。算法如下:

  • 如果活动单元格值为“挂起”->保护目标单元格并从保护编辑器中删除用户
  • 如果活动单元格值为其他->获取保护并过滤,使目标单元格保留一个
  • 移除目标单元的保护
  • 请记住,关于编辑权限,需要考虑很多因素,最重要的是:

  • 电子表格的所有者可以随时编辑任何内容,而不受保护
  • 域范围的权限仍将有效
  • 无法从编辑器中删除当前用户(进行编辑的用户) 有用的链接

  • 保护
    等级
  • getProtections()
    方法
  • protect()
    方法
  • remove()
    方法
  • removeditors()
    方法