Для того, чтобы цикл увеличивал другую переменную слишком много раз

63
9

Контекст: я создаю скрипт для листов, который будет раскрашивать внутренний календарь "Листы", чтобы показывать даты начала и окончания, основанные на заполнении деталей задачи в другом месте в Листе.

Необычная ситуация: для каждого возрастающего столбца я устанавливаю дату начала, colCount увеличивается на дополнительное время (больше, чем я хочу), как показано на прилагаемых рисунках. ColCount отслеживает, сколько ячеек должно быть окрашено в синий цвет (заканчивается в ячейке до даты окончания)

http://i.imgur.com/2kNGTIG.png - Лист 1 с описанием задачи

http://i.imgur.com/KhNBi4Q.png - Лист 2 с календарем, показывающий, где происходит живопись

Почему colCount увеличивается слишком много раз?

for (var k = 2; k < 100; k++){ //iterate over rows (searching tasks)

if (ss2.getRange(k, 1).getValue() === task){ //check correct row for task

var colCount = 1;
var start;
for (var i = 2; i < 100; i++){ //iterate over columns (searching dates)
var dateCell = ss2.getRange(1, i).getValue().getTime(); //this is cell that has date

if (dateCell == startDate){
start = i; //set column where start date is
}
else if (dateCell != endDate && dateCell != startDate){
colCount++;
}
else if (dateCell == endDate){
e.range.setNote("4.5: - start " + start + " - colCount " + colCount);
ss2.getRange(k, start, 1, colCount).setBackground("#4d79ff"); //set blue
ss2.getRange(k, i).setBackground("#fe4343"); //set red, working fine
return;
}
}
}
}

Изменение: нашел альтернативный способ достижения того, что я хотел. Я просто использовал линию

    var cols = ss2.getRange(1, i).getColumn() - start;

чтобы получить количество столбцов для рисования, затем используйте cols вместо colCount.

спросил(а) 2021-01-25T16:55:44+03:00 4 месяца, 2 недели назад
1
Решение
77

Я думаю, что ваша проблема может быть в строке

var dateCell = ss2.getRange(1, i).getValue().getTime();

Разве вы не должны получать диапазон (k,i) так как вы находитесь в строке k?

ответил(а) 2021-01-25T16:55:44+03:00 4 месяца, 2 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема