为什么进入onEdit函数时oldValue总是未定义?

问题描述 投票:0回答:1

在我的脚本中,我想将刚刚输入到单元格中的值与该单元格中之前的任何值(如果有)进行比较。

根据 https://developers.google.com/apps-script/guides/triggers/events,如果 (a) 编辑的范围是单个单元格并且 (b) 该单元格之前实际上包含价值。但这个断言在实践中并没有得到证实,至少在我的尝试中没有得到证实:相反,oldValue 的值始终是未定义的。

我选择了一个包含单词“罗马”的单元格,然后输入单词“巴黎”并按回车键。

出于调试目的,我的 onEdit 函数包含以下脚本行: .

function onEdit(event) {
...
  const valueBeforeEdit = event.oldvalue;
  const valueAfterEdit = event.value;
...
  outputDebuggingMsg("valueAfterEdit = " + valueAfterEdit +
                  "\n valueBeforeEdit = " + valueBeforeEdit);
...

*outputDebuggingMsg 是我编写的一个函数,用于将有用的数据写入“调试消息”表的连续行,以便我稍后可以查看一长串此类数据。

麻烦的是,调试输出信息总是如下:

  valueAfterEdit = Paris
  valueBeforeEdit = undefined  (I expected it to say "Rome" not "undefined")

无论我在 Chrome [版本 131.0.6778.108(官方版本)(64 位)] 或 Edge [版本 131.0.2903.86(官方版本)(64 位)] 中尝试此操作,都会发生同样的情况。

google-sheets google-apps-script events triggers google-workspace
1个回答
0
投票

打字错误导致的错误

您有一个错误的拼写错误,这就是为什么输出始终为

undefined
,请更改您的
function valueBeforeEdit = event.oldvalue to oldValue

从此:

const valueBeforeEdit = event.oldvalue;

对此:

const valueBeforeEdit = event.oldValue;

您可以在此链接上阅读有关简单触发器和可安装触发器的更多信息 - 事件对象

© www.soinside.com 2019 - 2024. All rights reserved.