У меня есть годовой календарь, разделенный на неделю, и целая куча ячеек контента между каждой неделей. По сути, B2: F2 имеет, например, с 1 по 5 января, а затем B15: F15 имеет, например, с 9 по 15 января.
Я пытаюсь открыть этот лист в ячейке, содержащей дату сегодняшнего дня, но приведенный ниже скрипт позволяет мне искать «Сегодня» только в одном столбце (D: D). Я не могу заставить его работать на всем листе.
Пока у меня есть:
function onOpen() {
var menu = [{name: "Jump to today's date", functionName: "jumpToDate"}];
SpreadsheetApp.getActiveSpreadsheet().addMenu("Custom", menu);
jumpToDate();
}
function jumpToDate() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var range = sheet.getRange("D:D");
var values = range.getValues();
var day = 24*3600*1000;
var today = parseInt((new Date().setHours(0,0,0,0))/day);
var ssdate;
for (var i=0; i<values.length; i++) {
try {
ssdate = values[i][0].getTime()/day;
}
catch(e) {
}
if (ssdate && Math.floor(ssdate) == today) {
sheet.setActiveRange(range.offset(i,0,1,1));
break;
}
}
Logger.log(ssdate);
}
Кажется, это работает только для столбца D, но каждый раз, когда я пытаюсь расширить диапазон в этой строке: это не работает.
var range = sheet.getRange("Invoice!B2:F500");
Кто-нибудь знает, как я мог сделать эту работу?
ПРИМЕЧАНИЕ: я не писал этот скрипт, я его отключил этот поток :)
Спасибо!
Редактировать:
Мы только go от 5-дневной недели (с понедельника по пятницу)
Вот как выглядит лист: https://docs.google.com/spreadsheets/d/1JQxXy-ErVKATh5cUCD7u6QLQkaDyXfhhGuMKs_xgbh4/edit?usp=sharing
А вот изображение: spreadhseetexample