Google Spreadsheet - добавьте дату в ячейку в зависимости от содержимого другой ячейки. - PullRequest
0 голосов
/ 07 июня 2018

У меня есть следующий код, чтобы проверить столбец A на определенное значение.(в данном случае «Работа в процессе») Дата добавляется в соседнюю ячейку в столбце B.

Я хочу, чтобы это происходило только тогда, когда соседняя ячейка пуста.Если дата уже находится в этой ячейке, необходимо пропустить добавление новой даты.

function onEdit(e) {
    // Work in progress Begin Date  
    var colToWatch = 1, colToStamp = 2;
    var valueToWatch = "Work in progress"; 
    if (e.range.columnStart === colToWatch && (e.value === valueToWatch || typeof e.value == 'object'))
        e.source.getActiveSheet()
            .getRange(e.range.rowStart, colToStamp)
            .setValue(typeof e.value === 'object' ? null : new Date());
}

1 Ответ

0 голосов
/ 07 июня 2018

Используя Apps Script с таблицей Google, вы можете запустить некоторый код при редактировании ячейки, а затем проверить столбец и значение ячейки, а затем либо ввести дату, либо нет.

function onEdit(e) {//The letter "e" is used to get the event object
  var adjacentCell,rng,row,sh;//define variables without assigning a value

  var colToWatch = 1, colToStamp = 2;
  var valueToWatch = "Work in progress"; 

  rng = e.range;
  row = rng.getRow();

  if (rng.getColumn() !== colToWatch || e.value !== valueToWatch) {return;}

  sh = e.source.getActiveSheet();

  adjacentCell = sh.getRange(row,colToStamp).getValue();
  Logger.log('adjacentCell: ' + adjacentCell)
  Logger.log(!adjacentCell)

  if (adjacentCell) {return;}//If there is a value in cell then stop

  sh.getRange(row, colToStamp)
    .setValue(new Date());

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...