我找不到关于event.source对象的任何详细文档,所以我想知道是否有可能访问修改后范围的先前值,以便可以将范围的新值与范围的旧值进行比较以进行验证。
谢谢你的帮助。
OnEdit(事件)
function onEdit(event)
/* Default onEdit Event function */
{
var ssa = SpreadsheetApp.getActiveSpreadsheet();
var ss = event.source.getActiveSheet();
var r = event.source.getActiveRange();
...
最佳答案
--edit现在看来这是可能的,请看下面的链接和评论。
有关详细信息,请参见文档here。
但是先前的值在事件上不可用。与此相关的enhancement request已打开。您应该对其加注星标,以跟踪其更新和投票情况。
现在,到“变通办法”。所有这些都是基于您必须将原始数据自己保存在其他地方这一事实。您可以有一个镜像电子表格或工作表,当原始文档上发生任何onEdit
时,您可以转到镜像并获取旧值。这比看起来要复杂一些,因为您还必须通过脚本更新镜像电子表格,但并非电子表格上的所有事件都会触发onEdit
事件,例如插入行。因此,您的脚本必须非常聪明才能跟上这些脚本的进度,具体取决于您的用法,甚至可能无法实现。