Для этого решения, я полагаю, у вас есть все месяцы, заказанные с января по декабрь, поэтому январь находится на первой позиции.
Вы можете устанавливать новую дату каждый раз, когда открываете электронную таблицу, получаете месяц и день и используете active
в листах и диапазоне:
function onOpen(){
let date = new Date();
let month = Utilities.formatDate(date, 'UTC', 'M');
let day = Utilities.formatDate(date, 'UTC', 'd');
var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets();
sheets[month - 1].activate();
var range = sheets[month - 1].getRange(1, 7 + parseInt(day));
sheets[month - 1].setActiveRange(range);
}
Вы заметите 7 + parseInt(day)
. Поскольку H начинается с 8-й позиции, мы добавляем дни текущего месяца, но выводим 1. В противном случае первый день месяца будет 8 + 1 (H + 1), и он будет сосредоточен на I. Кроме того, parseInt
это преобразовать day
в целое число, чтобы избежать 7 + 6 = 76
.
Ссылки :