用户在Google Apps脚本中插入行后如何获取新的行号

时间:2013-10-13 20:45:43

标签: google-apps-script

在用户在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());
}

1 个答案:

答案 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.
相关问题