Здравствуйте, Я хотел создать два скрипта, где один сохранял положение где я нахожусь(ячейка и лист), а нажатием на второй скрипт, я переходил в это место, но у меня не работает. Вот скрипты [vba]
Код
var list; var jach;
function zapomnit_polozhenie(){ var zp = SpreadsheetApp.getActiveSpreadsheet(); list = zp.getActiveSheet(); //- получить имя активного листа jach = list.getActiveSelection; };
Здравствуйте, Я хотел создать два скрипта, где один сохранял положение где я нахожусь(ячейка и лист), а нажатием на второй скрипт, я переходил в это место, но у меня не работает. Вот скрипты [vba]
Код
var list; var jach;
function zapomnit_polozhenie(){ var zp = SpreadsheetApp.getActiveSpreadsheet(); list = zp.getActiveSheet(); //- получить имя активного листа jach = list.getActiveSelection; };
Самое первое, в чём разочарую - в скриптах Гугл нет глобальных переменных (как уровня модуля в VBA), которые бы сохраняли значения между вызовами функций. Это означает, что перед вызовом любой функции переменные list и jach - всегда пустые, как бы старательно Вы не пытались их заполнить запуском другой предыдущей функции. Это надо осознать и к этому надо привыкнуть.
Весь код вне функций выполняется каждый раз при вызове любой функции. Чтобы сохранить какие-либо значения, желательно простые (числа, строки), между вызовами, можно использовать либо ячейки рабочего листа, либо специальные свойства проекта, доступные в Редакторе скриптов по меню: Файл \ Свойства проекта \ Свойства скрипта или Свойства пользователя.
Вот так можно сделать, с сохранением адресации в ячейках: [vba]
Код
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]
Самое первое, в чём разочарую - в скриптах Гугл нет глобальных переменных (как уровня модуля в VBA), которые бы сохраняли значения между вызовами функций. Это означает, что перед вызовом любой функции переменные list и jach - всегда пустые, как бы старательно Вы не пытались их заполнить запуском другой предыдущей функции. Это надо осознать и к этому надо привыкнуть.
Весь код вне функций выполняется каждый раз при вызове любой функции. Чтобы сохранить какие-либо значения, желательно простые (числа, строки), между вызовами, можно использовать либо ячейки рабочего листа, либо специальные свойства проекта, доступные в Редакторе скриптов по меню: Файл \ Свойства проекта \ Свойства скрипта или Свойства пользователя.
Вот так можно сделать, с сохранением адресации в ячейках: [vba]
Код
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();