Выбираете конкретный c столбец или ячейку для данных, которые нужно ввести? - PullRequest
0 голосов
/ 30 марта 2020

Сценарий ниже помещает отметку времени c в столбец A при редактировании столбца B.

function onEdit() {
    var s = SpreadsheetApp.getActiveSheet();
    if (s.getName() == "Sheet1") { 
        var r = s.getActiveCell();
        if (r.getColumn() == 2) {
            var nextCell = r.offset(0, -1);
            if (nextCell.getValue() === '')
                nextCell.setValue(new Date());
        }
    }
}

Однако мне бы хотелось, чтобы отметка времени возникала, когда столбцы B, C, D , E, et c.

Как мне указать, что в столбце A (или 1) должна быть указана дата?

Ответы [ 2 ]

1 голос
/ 31 марта 2020

Документация знает метод на листе getRange(row, column)

Итак, я думаю, это должно работать:

var firstCell = s.getRange(r.getRow(), 1);
0 голосов
/ 31 марта 2020

Вы можете использовать Объект события , чтобы получить информацию о ячейке, которая была отредактирована. Нет необходимости использовать getActiveSheet, getActiveCell и offset:

function onEdit(e) {
  var range = e.range; // Range that was edited
  var sheet = range.getSheet(); // Sheet that was edited
  var editedRow = range.getRow(); // Row that was edited
  var editedCol = range.getColumn(); // Column that was edited
  if (sheet.getName() == "Sheet1" && editedCol > 1) { // Check that edited sheet is "Sheet1" and edited column is not A
    var colA = sheet.getRange(editedRow, 1); // Get corresponding cell in column A
    if (colA.getValue() === "") colA.setValue(new Date()); // Set date if cell is empty
  }
}

Ссылка:

...