По сути, у меня есть несколько листов со следующей установкой:Google листы, активизирует диапазон верхней левой ячейки окна
Несколько замороженных строк заголовка в верхней части листа, под тем, что многие строками данных все с датой в столбце A. Следующая функция позволяет мне перейти на «сегодня» на любом листе (ну, технически ближайший день в будущем, если на сегодняшний день нет данных).
function goToToday() {
var workbook = SpreadsheetApp.getActiveSpreadsheet()
var currentSheet = workbook.getActiveSheet().getName();
if (currentSheet !== "Calculations") {
workbook.getSheetByName(currentSheet).setActiveRange(workbook.getSheetByName(currentSheet).getRange(1,1))
var today = new Date()
var rowNumber = 4
var numOfRows = workbook.getSheetByName(currentSheet).getLastRow() - 3
var dates = workbook.getSheetByName(currentSheet).getRange(4,1,numOfRows,1).getValues()
for(i = 0; i < numOfRows; i++) {
if(dates[i][0] > today) {
break
}
else {
rowNumber++
}
}
workbook.getSheetByName(currentSheet).getRange(rowNumber, 1).activate()
}
}
Что мне пристанет, если активная ячейка перед запуском функции является ниже возвращаемых «сегодня» клетка функции, клетка возвращается в верхней левой ячейке в окне, который идеально подходит. Если, однако, текущая активная ячейка равна выше возвращенной ячейке, ячейка возвращается в нижней части окна. Как я могу заставить функцию возвращать ячейку последовательно, как верхнюю левую ячейку окна? Я предполагаю, что это имеет какое-то отношение к прокрутке.
Почему вы устанавливаете активный диапазон в ячейку A1? Изменяет ли результат вообще? – HardScale