我有一个关于函数如何仍然可以在用户没有直接访问权限的受保护单元上交互的问题。
让我们想象一个非常简单的工作表,其中我只希望任何一个(所以不是我)工作的人都会,尽管函数会更新他所在行上的n°1和n°2列,并且这个函数会同时更新当前日期。……但是..。同时,我保护列n°1,使它只能由我编辑。Rq :对于测试列n°2不受保护。
意见:
。
我的梦想:
由于我是工作表和代码的所有者,我非常有兴趣找到一种方法,以便1)我的代码受到保护,因此任何人都不能修改我的代码,但我的代码仍然被执行并修改我想要的东西,即使有人在受保护的单元格上使用它。
不知何故,这只是对象模型的自然方式,以及通过公共函数修改私有数据的过程。
带有日期的示例是基本的和愚蠢的,但是它允许使用一些任何人都不能修改的数据(例如数据散列或最后更新日期)来放置更复杂的逻辑。
请帮帮我!
梅西
要测试这一点:
只需在一个空工作表中打开脚本编辑器,并将以下代码放入
function onEdit (e)
{
var CurRow = e.range.getRow();
e.getActiveSheet().getRange(CurRow, 1,).setValue(new Date());
}发布于 2020-04-27 13:38:54
为什么在工作表中存在保护?
答案:防止您信任的用户意外地进行编辑。
如果有人对您的工作表具有编辑访问权限,则Point #1 Nothing将不会受到真正的保护。
Point #2只是使这些特定的单元格不受保护,如果您允许它们使用函数编辑您的单元格,那么它们就不再受到保护了,因为它们可以进入GAS(Google )编辑器,并使它成为他们想要的.
摘要:--如果您允许某人对您的工作表进行编辑访问--没有什么是真正受保护的,如果您不能信任您的编辑器,则需要让他们从google之外编辑此工作表。
奖励: onEdit不可靠,并不总是执行。
https://stackoverflow.com/questions/61459305
复制相似问题