В общем листе Google пользователи вводят свои часы для каждой работы в качестве инструмента прогнозирования. Задания делятся на 3 группы, поэтому я хочу, чтобы у меня был сценарий, чтобы пользователи могли легко прокрутить до нужного раздела.
Я написал сценарий, и он выполняется правильно. Он находит строку заголовка в столбце A, возвращает номер строки и затем активирует ячейку, содержащую заголовок.
// global variables
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var err_msg = "Sorry, can't find link to "
var lastcell = sheet.getRange(sheet.getLastRow(), 1, 1, 1); //row, column, numRows, numColumns
// search in column A:A for the headings, returns row number
function findInColumn(data) {
var sheet = SpreadsheetApp.getActiveSpreadsheet();
var values = sheet.getRange('A1:A' + sheet.getLastRow()).getValues(); // column + ":" + column like A:A
//var values = column.getValues();
var row = 0;
while ( values[row] && values[row][0] !== data ) {
row++;
}
if (values[row][0] === data)
return row+1;
else
return -1;
}
function jumpTo_LargeScaleHybrid() {
var data = "LARGE SCALE / HYBRID";
var rownum = findInColumn(data);
var range = sheet.getRange(rownum, 1, 1, 1); //row, column, numRows, numColumns
if (rownum && -1) {
sheet.setActiveRange(range);
}
else {
Browser.msgBox("Sorry, can't find link to 'LARGE SCALE / HYBRID'. Someone must have changed the target name.");
}
}
Однако выбранная ячейка находится в нижней части экрана, тогда как мне бы это хотелосьвверху.
Если начальная позиция находится внизу списка заданий, значит, это работает. Но не в том случае, если стартовая позиция находится на самом верху, где начинается большинство пользователей.