Как настроить макрос листов Google с функцией «OnEdit» для запуска только на одном листе? - PullRequest
0 голосов
/ 16 марта 2020

В настоящее время я пытаюсь создать средство отслеживания бюджетных расходов, которое автоматически заполняет дату рядом с каждой покупкой, которую я отслеживаю. Установлено, что на листе 2 столбец c - это место, где я добавляю свои расходы, а столбец B - это место, где должна быть добавлена ​​дата Код, который я сейчас использую, вставлен ниже.

`function onEdit(e) {
  var row = e.range.getRow();
  var dateCell = e.range.getSheet().getRange(row, 2);
  if (!dateCell.getValue()) {
    dateCell.setValue(new Date()).setNumberFormat("MM/dd/YY");
  }
}`

Это работает нормально, за исключением одной вещи, она активируется в каждой электронной таблице, а не только в электронной таблице 2. Как я могу настроить свой код так, чтобы он только запускается при изменении другого столбца в таблице 2?

Спасибо

1 Ответ

0 голосов
/ 16 марта 2020

Чтобы ваш onEdit(e) триггер работал только на Sheet2, вы должны добавить условие if, где вы проверяете, является ли имя листа тем, для которого вы хотите, чтобы триггер был выполняется.

Предполагая, что имя листа "Sheet2", вы можете попробовать это:

function onEdit(e) {
    var sheet = e.range.getSheet();
    if (sheet.getName() === "Sheet2") {
        var row = e.range.getRow();
        var dateCell = sheet.getRange(row, 2);
        if (!dateCell.getValue()) {
            dateCell.setValue(new Date()).setNumberFormat("MM/dd/YY");
        }
    }
}

Ссылка

...