更改了onEdit事件的行

时间:2014-01-11 22:27:33

标签: google-apps-script google-sheets google-spreadsheet-api

需要获取Google电子表格中已更改行的rownumber。

电子表格有很多行,并根据特定列计算SUM。当我删除列中的值时,必须计算新的SUM。当我更改1行时,这很有用,但我经常选择列多行以删除内容。我的期望是onEdit事件将不止一次被触发。

之后我希望getRange函数给我rownumbers,但事实并非如此。

function onEdit()
{
  var as = SpreadsheetApp.getActiveSheet();

  var edditRow = SpreadsheetApp.getActiveRange().getRow();
  var edditColumn = SpreadsheetApp.getActiveRange().getColumn();  

  LKfunctions.RecalcalculateTimes(edditRow, edditColumn);
}

希望有一些好的建议如何解决这个问题。

1 个答案:

答案 0 :(得分:0)

.getRow()只返回范围的第一个行号。

.getNumRows()返回范围内的行数。

我建议你将它们一起添加并使用循环来重新计算。像这样:

    function onEdit()
{
  var as = SpreadsheetApp.getActiveSheet();
  var r = as.getActiveRange();
  var numRows = r.getNumRows();
  var edditRow = r.getRow();
  var edditColumn = r.getColumn();
  for (var i=edditRow; i<edditRow+numRows; ++i) {
    LKfunctions.RecalcalculateTimes(i, edditColumn);
    Logger.log('Editted row ' + i);
  }
}