我找不到关于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事件,例如插入行。因此,您的脚本必须非常聪明才能跟上这些脚本的进度,具体取决于您的用法,甚至可能无法实现。

10-06 02:41