【发布时间】:2020-03-21 06:18:39
【问题描述】:
我有:
- 自动接收新的 shopify 订单的 google sheet 通过扎皮尔
- 订单作为新行插入,至少到目前为止是这样,但是 不知道以后会不会更新编辑 通过 zapier
- 订单中的客户数据位于 A 到 JO 列中
- 以下代码是一个容器绑定的简单触发器,可通过转到 google sheet 中的 Tools > Script Editor 访问
我想要:
- 在 JP 列中为新行或已编辑行添加时间戳
我从这篇帖子"Want to create timestamp for time added and create unique incremental user ID. And also include a last changed column" 拼凑了以下代码。但是我有一个问题 - 当我尝试运行它时,我收到以下错误消息:
“TypeError:无法读取未定义的属性‘源’(第 6 行,文件“代码”)”
function onChange(e) {
var lastChangedTime = 276 //column JP
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = e.source.getActiveSheet
var now = new Date();
if (e.changeType == "INSERT_ROW") {
//set lastChangedTime when the row is created
ss.getActiveSheet().getRange(ss.getActiveRange().getLastRow(), lastChangedTime, 1, 1).setValue(now);
}
if (e.changeType == "EDIT") {
//set date in same row as edit happens, at fixed column
ss.getActiveSheet().getRange(ss.getActiveRange().getLastRow(), lastChangedTime, 1, 1).setValue(new Date());
}
}
谁能通过查看这段代码来判断错误是什么?任何帮助将不胜感激!
编辑 1:
我想跟进并告诉大家这个问题是如何为我解决的。我以为我有一个问题,但实际上我有两个。
第一个问题是我试图从脚本编辑器中“运行”OnEdit(e) 函数来测试它,结果抛出了上述错误代码。正如 Chemi Adel 正确指出的那样,需要更改代码以启用此类测试。
Mateo Randwolf 在 cmets 中正确识别的第二个问题是我没有正确安装触发器。要安装触发器,首先打开包含脚本的谷歌表。然后转到工具>脚本编辑器打开脚本编辑器。脚本编辑器应在 Web 浏览器的单独选项卡中打开。然后,在脚本编辑器选项卡中转到 Edit > Current Project's Triggers,这将打开一个新选项卡,显示当前项目的触发器。然后按下右下角的“添加触发器”按钮,将函数的参数设置为Function: OnChange, Deployment: Head(不知道这是什么表示但对我来说是唯一的选项)、选择事件源:从电子表格和选择事件类型:编辑时。我能够在 Mateo Randwolf 链接到的文档中找到如何安装触发器。
【问题讨论】:
-
嗨!你安装了这个触发器吗?如果您不确定它们是什么check this documetation page.
-
嗨!太好了,我很高兴这对你有用。但是,您能否将您的
EDIT 1正式化为对这篇文章的回答,以便遇到相同问题的每个人都可以轻松地看到解决方案?谢谢!
标签: google-apps-script google-sheets timestamp row