0

需要獲取Google Spreadsheet中已更改行的rownumbers。更改了onEdit事件的行

該電子表格有很多行並根據特定列計算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); 
} 

希望有一些很好的建議如何解決這個問題。

回答

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); 
    } 
}