У меня есть таблица отслеживания, которая открывает электронную таблицу пользователя и отслеживает, ответили ли они на правильную неделю.Пользователь может зарегистрироваться в любое время, поэтому у меня есть оператор if, который подсчитывает количество дней между сегодняшним днем и датой создания электронной таблицы.Затем он перемещает его в нужную ячейку.Затем мне нужно другое заявление if, в котором говорится, что если дата последнего обновления меньше 7 дней, то зеленый, если не красный.Оба оператора If работают как автономный код, но когда я пытаюсь их выполнить, сначала выполняется второй оператор If, помещая Y или No в ячейку, а затем он активирует правильную ячейку на основе даты в таблице!Мне нужно, чтобы 2-й оператор If выполнялся после того, как он активировал правильный лист.
Я попытался переместить синтаксис.Я попытался создать оператор If внутри каждого оператора If.Проблема заключается в том, что код должен запускаться автоматически в течение полных 52 недель в году
function trackingSheetUpdate() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sourceSheet = ss.getSheetByName('Active Campaign');
var trackSheet = ss.getSheetByName('Tracking')
var now = new Date()
var createDate = sourceSheet.getRange(2, 6).getValue()
var NoOfDays = (now - createDate) / (1000 * 60 * 60 * 24);
var diff = Math.round(NoOfDays)
Logger.log(diff);
var rowData = sourceSheet.getRange(1, 1, sourceSheet.getLastRow(), sourceSheet.getLastColumn()).getValues();
for (var i = 2; i < rowData.length; i++) {
var getUpdate = sourceSheet.getRange(i, 5).getValue();
var openSheet = SpreadsheetApp.openByUrl(getUpdate).getSheetByName('Sheet1')
var row = openSheet.getLastRow()
var weeklyUpdate = openSheet.getRange(row, 1).getValue();
var calc = (now - weeklyUpdate) / (1000 * 60 * 60 * 24)
var calcDate = Math.round(calc)
if (diff > 1 && diff <= 7) {
trackSheet.getRange(i, 2).activateAsCurrentCell()
} else if (diff > 7 && diff <= 14) {
trackSheet.getRange(i, 3).activateAsCurrentCell()
} else if (diff > 14 && diff <= 21) {
trackSheet.getRange(i, 4).activateAsCurrentCell()
}
if (calcDate <= 7) {
trackSheet.getActiveCell().setValue("Y")
} else {
trackSheet.getActiveCell().setValue("N")
}
Я установил дату создания на 8/5/19, поэтому он должен перейти к столбцу 2- что это делает.Я установил дату последнего обновления на 5/5/19, поэтому он должен быть красным и «Нет», что и есть (за исключением того, что он помещает этот результат в любую ячейку, в которой я его оставляю, затем перемещается в столбец 2 и активирует его!)