Google 表格脚本 - onEdit 和 "source"
Google Scripts for Sheets - onEdit and "source"
几天来我一直在努力尝试让脚本正常工作。在最基本的层面上,我的函数包含这个:
function onEdit(e) {
var changedRange = e.source.getActiveRange()
}
根据 Google 的文档,这似乎是完全合法的用途:https://developers.google.com/apps-script/guides/triggers/events
但是此代码会产生此错误:
TypeError: Cannot read property "source" from undefined. (line 18, file "Code")
我也为 onEdit 添加了一个触发器,但这在脚本中仍然不起作用。我错过了什么吗?
我创建了一个新的电子表格,添加了您的代码,并编辑了一个单元格,脚本执行时没有出现错误。但是,正如 JPV 在评论中建议的那样,如果您使用 运行 按钮 运行 脚本编辑器中的代码,它将产生错误。 运行 编辑器中的函数不允许将事件对象“e”传递到函数中。因此,它是 undefined
.
最常见的问题是从应用程序编辑器中调试或 运行ning 代码。在这些模式中,您根本没有事件。
但有时当您添加一些需要额外权限的代码时会发生这种情况。您将能够通过以下方式修复它:
- 保存您的代码
- 以 运行 模式启动所有触发器
- 删除触发器并再添加一次(如果仍然不起作用)
几天来我一直在努力尝试让脚本正常工作。在最基本的层面上,我的函数包含这个:
function onEdit(e) {
var changedRange = e.source.getActiveRange()
}
根据 Google 的文档,这似乎是完全合法的用途:https://developers.google.com/apps-script/guides/triggers/events
但是此代码会产生此错误:
TypeError: Cannot read property "source" from undefined. (line 18, file "Code")
我也为 onEdit 添加了一个触发器,但这在脚本中仍然不起作用。我错过了什么吗?
我创建了一个新的电子表格,添加了您的代码,并编辑了一个单元格,脚本执行时没有出现错误。但是,正如 JPV 在评论中建议的那样,如果您使用 运行 按钮 运行 脚本编辑器中的代码,它将产生错误。 运行 编辑器中的函数不允许将事件对象“e”传递到函数中。因此,它是 undefined
.
最常见的问题是从应用程序编辑器中调试或 运行ning 代码。在这些模式中,您根本没有事件。 但有时当您添加一些需要额外权限的代码时会发生这种情况。您将能够通过以下方式修复它:
- 保存您的代码
- 以 运行 模式启动所有触发器
- 删除触发器并再添加一次(如果仍然不起作用)