ГАЗ исключить ключ для выполнения макроса - PullRequest
0 голосов
/ 11 сентября 2018

Мне очень помог следующий скрипт: THREAD

Теперь проблема в том, что скрипт отлично работает на каждой ячейке.Дело в том, что я хочу, чтобы он не работал, когда я использую клавишу «удалить», чтобы очистить ячейки.Прямо сейчас, если я нажму клавишу «удалить», она заполнит дату в «правой ячейке».

    function onEdit(e)
    {
      // condition to make sure you are not entering value in the date sheet
      if(e.source.getActiveSheet().getName() != "Dates" && e.range.rowStart > 2)
      {
        //grab the sheet where you wan't the date to be inserted.
        var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Dates");
        //grab the cell where the date will be inserted 
        var cell = e.source.getActiveSheet().getRange(e.range.getRow(), e.range.getColumn() + 1);
        //create the actual date
        var now = Utilities.formatDate(new Date(), "GMT+2", "MM-dd-yyyy");
        //set the value of the cell with the date
cell.setValue(now);
      }
    }

Пользователь JSmith очень мне здесь помог.Ищу твою помощь снова, брат.(Я в долгу перед тобой, потому что я никогда не работал с ГАЗОМ)

1 Ответ

0 голосов
/ 11 сентября 2018

Попробуйте этот код, который работает для диапазона одного столбца и одной / нескольких строк.

  function onEdit(e)
  {
    var values = e.range.getValues();
    var now = Utilities.formatDate(new Date(), "GMT+2", "MM-dd-yyyy");
    var newRange = e.range.getSheet().getRange(e.range.getRow(), e.range.getColumn() + 1,e.range.getLastRow() - e.range.getRow() + 1, 1);
    values.forEach(function (el)
    {
      if (el[0])
        el[0] = now;
    });
    newRange.setValues(values);
  }
...