Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.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,我有一个问题,关于一个函数如何仍然可以在用户无法直接访问的受保护单元上进行交互 让我们想象一个非常简单的工作表,其中我只想让任何人(除我以外的其他人)通过一个函数更新他所在行的第1列和第2列,并将此函数放在当前日期上。 .... 但是同时,我保护了第1列,因此它只能由我编辑。 Rq:对于试验柱,2号无保护 观察: 如果没有保护。。。函数将正确更新列1和列2,并在两个单元格中输入日期 一旦有保护,该函数将运行,但在尝试更新第1列时退出,因此它甚至不会更新第2列 我的梦想: 由于我是表单和代码的

我有一个问题,关于一个函数如何仍然可以在用户无法直接访问的受保护单元上进行交互

让我们想象一个非常简单的工作表,其中我只想让任何人(除我以外的其他人)通过一个函数更新他所在行的第1列和第2列,并将此函数放在当前日期上。 .... 但是同时,我保护了第1列,因此它只能由我编辑。 Rq:对于试验柱,2号无保护

观察:
  • 如果没有保护。。。函数将正确更新列1和列2,并在两个单元格中输入日期

  • 一旦有保护,该函数将运行,但在尝试更新第1列时退出,因此它甚至不会更新第2列

我的梦想: 由于我是表单和代码的所有者,我非常有兴趣找到一种方法 1) 我的代码受保护,因此任何人都不能修改 2) 尽管如此,我的代码仍然会被执行并修改我想要的内容,即使有人在受保护的单元上使用我的代码

不知何故,这只是对象模型的自然方法,并且通过公共函数修改私有数据

带有日期的示例是基本且愚蠢的,但它允许对一些任何人都无法修改的数据(例如数据哈希或最后更新日期)使用更复杂的逻辑

请帮忙

谢谢

要测试这一点:

只需在一个空的工作表中打开脚本编辑器,并将此代码放入

function onEdit (e)
{
   var CurRow = e.range.getRow();
   e.getActiveSheet().getRange(CurRow, 1,).setValue(new Date());
}

为什么纸张中存在保护?

答:防止受信任的用户意外进行编辑

第1点如果有人对您的工作表具有编辑权限,则任何内容都不会受到真正的保护

Point#2只需让那些特定的单元格不受保护,如果你让它们用一个函数编辑你的单元格,那么它们就不再受保护了,因为它们可以进入GAS(谷歌应用程序脚本)编辑器,随心所欲地进行编辑

摘要:如果你给某人对你的工作表的编辑权限,没有什么是真正受保护的,如果你不能信任你的编辑,你需要让他们在谷歌工作表之外编辑这份工作表

奖金:
onEdit
不可靠且不总是执行