onEdit 事件对象访问已修改的单元格的先前值?

Van*_*acK 8 triggers google-sheets google-apps-script

我找不到有关 event.source 对象的任何详细文档,因此我想知道是否可以访问修改范围的先前值,以便我可以将范围的新值与范围的旧值进行比较以进行验证。

感谢您的帮助。

OnEdit(事件)

function onEdit(event) 
/* Default onEdit Event function */
{
  var ssa = SpreadsheetApp.getActiveSpreadsheet();
  var ss = event.source.getActiveSheet();
  var r = event.source.getActiveRange();
...
Run Code Online (Sandbox Code Playgroud)

Hen*_*reu 3

--编辑看来现在这是可能的,请查看下面的链接和评论。

详细信息位于此处的文档中。

但先前的值在事件中不可用。有一个与此相关的增强请求。您应该“加注星标”以跟踪更新并为其投票。

现在,“解决方法”。所有这些都是基于这样一个事实:您必须自己将原始数据保存在其他地方。您可以有一个镜像电子表格或工作表,当onEdit原始数据发生任何情况时,您可以转到镜像并获取旧值。这比看起来要复杂一些,因为您还必须通过脚本更新镜像电子表格,但并非电子表格上的所有事件都会触发onEdit事件,例如插入行。因此,您的脚本必须非常智能才能跟上这些要求,而根据您的使用情况,这甚至可能是不可能的。

  • 根据 [关于问题 200 的评论 #47](https://code.google.com/p/google-apps-script-issues/issues/detail?id=200#c47),相同的问题由Henrique,现在可以使用“onEdit(e) ... e.oldValue”访问以前的值。 (3认同)