Size: a a a

Чат | Google Таблицы и скрипты

2018 August 30

R

Roman in Чат | Google Таблицы и скрипты
Суть проблемы:
Каждое первое число месяца создаёт такой прецендент - если есть конструкция DATE - 1 то, возвращается 0
источник

R

Roman in Чат | Google Таблицы и скрипты
Подробнее:
есть 3 триггера, которые допустим вызываются в промежутках, с 15 до 16, с 23 до 00 и с 7 до 8 уже следующего дня, а писать надо во вчерашний лист, т.е. DATE - 1
источник

R

Roman in Чат | Google Таблицы и скрипты
SpreadsheetApp.openById(ID).getSheetByName(date);
источник

R

Roman in Чат | Google Таблицы и скрипты
Так я получаю нужный лист, т.к. его имя = сегодняшняя дата
источник

R

Roman in Чат | Google Таблицы и скрипты
Если с этим листом работать в течении дня то проблем нет вообще, т.к.
var date = new Date().getDate();
полностью справляется
источник

R

Roman in Чат | Google Таблицы и скрипты
Если триггер должен сработать на следующий день, то уже приходится
var date = new Date().getDate() - 1;
источник

R

Roman in Чат | Google Таблицы и скрипты
В итоге это создаёт в начале каждого месяца проблему в виде date = 0
источник

R

Roman in Чат | Google Таблицы и скрипты
Казалось бы, надо сделать IF date = 0
источник

R

Roman in Чат | Google Таблицы и скрипты
Но какой лист ему в таком случае брать? Есть идея что последний
источник

EN

Eugeny Namokonov in Чат | Google Таблицы и скрипты
надо обратиться к листу, если будет ошибка - создать его
источник

EN

Eugeny Namokonov in Чат | Google Таблицы и скрипты
то есть к листу нельзя обратиться - его нет
источник

R

Roman in Чат | Google Таблицы и скрипты
Перебирать листы по номерам?
источник

EN

Eugeny Namokonov in Чат | Google Таблицы и скрипты
тут гулял сниппет господина @oshliaer, можно его использовать
источник

EN

Eugeny Namokonov in Чат | Google Таблицы и скрипты
//Always returns a sheet
function getSheetByName(spreadsheet, sheetName){
 var sheet = spreadsheet.getSheetByName(sheetName);
 return sheet || spreadsheet.insertSheet(sheetName);
}
источник

R

Roman in Чат | Google Таблицы и скрипты
А можно каким-то образом получать вчерашнюю дату?
источник

EN

Eugeny Namokonov in Чат | Google Таблицы и скрипты
Roman
А можно каким-то образом получать вчерашнюю дату?
да, берем сегодня и отнимаем один день
источник

EN

Eugeny Namokonov in Чат | Google Таблицы и скрипты
Eugeny Namokonov
//Always returns a sheet
function getSheetByName(spreadsheet, sheetName){
 var sheet = spreadsheet.getSheetByName(sheetName);
 return sheet || spreadsheet.insertSheet(sheetName);
}
это штука пытается обратиться к листу по названию и если его нет - она его создаст, перебирать ничего не надо
источник

R

Roman in Чат | Google Таблицы и скрипты
Eugeny Namokonov
это штука пытается обратиться к листу по названию и если его нет - она его создаст, перебирать ничего не надо
Понял спасибо, как крайний вариант будет
источник

EN

Eugeny Namokonov in Чат | Google Таблицы и скрипты
так а зачем крайний, это и надо использовать, зачем перебирать всё
источник

R

Roman in Чат | Google Таблицы и скрипты
Eugeny Namokonov
это штука пытается обратиться к листу по названию и если его нет - она его создаст, перебирать ничего не надо
Прикол в том, что листы создаются путём копирования предыдущего и очистки диапазоном
источник