0

Нужно получить рябины для измененных строк в Google Spreadsheet.Измененные строки для события onEdit

Электронная таблица получила множество строк и вычислила СУММ в зависимости от конкретной колонны. Когда я удаляю значения в столбце, должен вычисляться новый SUM. Это отлично работает, когда я изменяю одну строку, но часто я выбираю столбец для большего количества строк и удаляю содержимое. Я ожидал, что событие onEdit будет запущено более одного раза.

После этого я надеялся, что функция getRange даст мне рябины, но это не так.

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); 
    } 
} 
Смежные вопросы