Я пытаюсь реализовать этот скрипт, чтобы найти текущую дату на всех просматриваемых листах (не скрыто) и перейти к активному диапазону дат (сегодня) на любой вкладке, при которой она открыта.
Я нашелэтот поток, но теперь он заблокирован, https://productforums.google.com/forum/#!topic/docs/NiPjCPUOx3M
Сценарий, который они использовали для достижения этой цели, указан в разделе кода:
Этот код не работает для моего листа, как моя датавводятся как календарные даты и, таким образом, регистрируются как числовые значения.
Может ли кто-нибудь помочь мне с этим?
Мой лист: https://docs.google.com/spreadsheets/d/1W3KMwE2dEqe0dkoggKJ5LRT3qHEgwD71izVKx8gJn08/edit?usp=sharing
Диапазоны дат для каждоголисты перечислены в: C4: I4 C51: I51 C98: I98 C145: I145
function onOpen() {
var sheets, sheet, d, now, today, flag, r;
sheets = SpreadsheetApp.getActive().getSheets();
now = new Date(),
today = new Date(now.getYear(), now.getMonth() + 1, now.getDate(), 0, 0, 0, 0)
.getTime();
for (var i = 0, len = sheets.length; i < len; i += 1) {
v = sheets[i].getRange('A:A')
.getValues()
for (var j = 0, l = v.length; j < l; j += 1) {
r = v[j][0];
if (r && isDate_(r)) {
d = new Date(r.getYear(), r.getMonth() + 1, r.getDate(), 0, 0, 0, 0)
.getTime();
if (d == today) {
sheets[i].setActiveRange(sheets[i].getRange(j + 1, 6));
break;
}
}
}
}
}
function isDate_(sDate) {
var tryDate = new Date(sDate);
return (tryDate && !isNaN(tryDate));
}
Чтобы лист нашел ячейку с текущей датой и активировал / переместился к ней автоматически.