在用户在Google SpreadSheet中添加新行后,我尝试做一些事情。 我创建了一个触发器来运行我的功能" 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());
}
答案 0 :(得分:0)
传递给 onChange
的事件除了类型和其他一些属性外似乎没有任何信息。
您可以改为检查活动工作表和活动范围。以下函数显示新插入的行号。
function onChange(e) {
var sheet = SpreadsheetApp.getActiveSheet();
var range = sheet.getActiveRange();
var row = range.getLastRow();
SpreadsheetApp.getActiveSpreadsheet().toast(">" + e.changeType + " " + row + " " + sheet.getName()) ;
} // Added: Please install OnChange event trigger to this function.