Основная проблема в том, что я добавляю дату в ячейку через одну неделю с сегодняшнего дня, когда редактируется соседняя ячейка. Все идет нормально. Однако он не должен изменяться при изменении даты окончания или при повторном редактировании соседней ячейки.
В основном пытался проверить и посмотреть, есть ли уже дата в ячейке, и если да, просто вернуть. Но по какой-то причине он не выполняет сравнение строк должным образом. Он никогда не распознает его как пустую строку. Затем я пытаюсь использовать include (), он говорит мне, что include () нельзя использовать на объекте. Насколько я понимаю, getDisplayValue () всегда должен возвращать строку? Немного в замешательстве.
function getDate(progress) {
//progress: cell showing progress state (Not started, begun, completed)
var range = SpreadsheetApp.getActiveRange();
var d = range.getDisplayValue();
if(progress == 'Completed') { return 'done'; }
if(d != '') { return; } //if due date cell already has a date, don't change it
today = new Date();
due = new Date();
due.setDate(today.getDate() + 7); //one week from today
return due;
}
Есть идеи, в чем проблема с этим кодом? Или откройте другое решение, если есть что-то более элегантное.