【发布时间】:2021-03-09 03:38:16
【问题描述】:
在用户在 Google 电子表格中添加新行后,我正在尝试做一些事情。 我创建了一个运行我的函数“nieuweregel”的触发器,我想获取新行的行号。谷歌应用程序发送的对象“事件”仅包含更改类型和用户(因此 event.source.getActiveRange() 不起作用,因为源不存在)。 Understanding Events
我试图通过活动的 SpreadSheet 对象来获取它,但没有运气,它总是返回 0, 我认为这可能是一个时间问题,因为在您插入该行之后,新行被选中。所以我什至尝试使用 setTimeout(),1000);添加新行后尝试触发 get 行,但 Google Apps 似乎不接受 setTimout。
有人想得到那个行号吗?
function nieuweregel(event){
if(event.changeType == "INSERT_ROW")
var ss = SpreadsheetApp.getActiveSpreadsheet();
// var r = event.source.getActiveRange()
var r = ss.getActiveRange();
ss.toast('new row nr = '+r.getRow());
}
【问题讨论】:
-
您需要告诉我们您使用的是什么类型的触发器。 OnEdit 不会告诉您,但 onChange 会告诉您,但如果用户插入许多行,您可能无法获得整个范围。
-
我正在使用 onChange 触发器,因为 OnEdit 事件不返回更改类型。我的代码正在运行,但 r.getRow() 始终返回 0。