Здравствуйте, Я хотел создать два скрипта, где один сохранял положение где я нахожусь(ячейка и лист), а нажатием на второй скрипт, я переходил в это место, но у меня не работает. Вот скрипты
var list;
var jach;
function zapomnit_polozhenie(){
var zp = SpreadsheetApp.getActiveSpreadsheet();
list = zp.getActiveSheet(); //- получить имя активного листа
jach = list.getActiveSelection;
};
Здравствуйте, Я хотел создать два скрипта, где один сохранял положение где я нахожусь(ячейка и лист), а нажатием на второй скрипт, я переходил в это место, но у меня не работает. Вот скрипты
var list;
var jach;
function zapomnit_polozhenie(){
var zp = SpreadsheetApp.getActiveSpreadsheet();
list = zp.getActiveSheet(); //- получить имя активного листа
jach = list.getActiveSelection;
};
Самое первое, в чём разочарую - в скриптах Гугл нет глобальных переменных (как уровня модуля в VBA), которые бы сохраняли значения между вызовами функций. Это означает, что перед вызовом любой функции переменные list и jach - всегда пустые, как бы старательно Вы не пытались их заполнить запуском другой предыдущей функции. Это надо осознать и к этому надо привыкнуть.
Весь код вне функций выполняется каждый раз при вызове любой функции. Чтобы сохранить какие-либо значения, желательно простые (числа, строки), между вызовами, можно использовать либо ячейки рабочего листа, либо специальные свойства проекта, доступные в Редакторе скриптов по меню: Файл \ Свойства проекта \ Свойства скрипта или Свойства пользователя.
Вот так можно сделать, с сохранением адресации в ячейках:
var ss = SpreadsheetApp.getActive();
var listRng = ss.getSheetByName("Лист1").getRange("B1");
var jachRng = ss.getSheetByName("Лист1").getRange("B2");
function zapomnit_polozhenie(){
var list = ss.getActiveSheet();
var jach = ss.getActiveCell();
function vernutca_polozhenie() {
var list = ss.getSheetByName( listRng.getValue() );
var jach = list.getRange( jachRng.getValue() );
list.activate();
list.setActiveSelection(jach);
}
Самое первое, в чём разочарую - в скриптах Гугл нет глобальных переменных (как уровня модуля в VBA), которые бы сохраняли значения между вызовами функций. Это означает, что перед вызовом любой функции переменные list и jach - всегда пустые, как бы старательно Вы не пытались их заполнить запуском другой предыдущей функции. Это надо осознать и к этому надо привыкнуть.
Весь код вне функций выполняется каждый раз при вызове любой функции. Чтобы сохранить какие-либо значения, желательно простые (числа, строки), между вызовами, можно использовать либо ячейки рабочего листа, либо специальные свойства проекта, доступные в Редакторе скриптов по меню: Файл \ Свойства проекта \ Свойства скрипта или Свойства пользователя.
Вот так можно сделать, с сохранением адресации в ячейках:
var ss = SpreadsheetApp.getActive();
var listRng = ss.getSheetByName("Лист1").getRange("B1");
var jachRng = ss.getSheetByName("Лист1").getRange("B2");
function zapomnit_polozhenie(){
var list = ss.getActiveSheet();
var jach = ss.getActiveCell();