Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/сохранить положение ячейки и листа и перейти на него - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, китин  
сохранить положение ячейки и листа и перейти на него
grig5-05 Дата: Вторник, 17.10.2017, 16:38 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 10
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Здравствуйте,
Я хотел создать два скрипта, где один сохранял положение где я нахожусь(ячейка и лист), а нажатием на второй скрипт, я переходил в это место, но у меня не работает. Вот скрипты
[vba]
Код

var list;
var jach;

function zapomnit_polozhenie(){
  var zp = SpreadsheetApp.getActiveSpreadsheet();
  list = zp.getActiveSheet(); //- получить имя активного листа
  jach = list.getActiveSelection;
  };

function vernutca_polozhenie(list, jach){

  list.activate();
  list.setActiveSelection(jach);
};
[/vba]

Не подскажите, в чем у меня ошибка
 
Ответить
СообщениеЗдравствуйте,
Я хотел создать два скрипта, где один сохранял положение где я нахожусь(ячейка и лист), а нажатием на второй скрипт, я переходил в это место, но у меня не работает. Вот скрипты
[vba]
Код

var list;
var jach;

function zapomnit_polozhenie(){
  var zp = SpreadsheetApp.getActiveSpreadsheet();
  list = zp.getActiveSheet(); //- получить имя активного листа
  jach = list.getActiveSelection;
  };

function vernutca_polozhenie(list, jach){

  list.activate();
  list.setActiveSelection(jach);
};
[/vba]

Не подскажите, в чем у меня ошибка

Автор - grig5-05
Дата добавления - 17.10.2017 в 16:38
Gustav Дата: Вторник, 17.10.2017, 17:38 | Сообщение № 2
Группа: Админы
Ранг: Участник клуба
Сообщений: 2808
Репутация: 1184 ±
Замечаний: ±

начинал с Excel 4.0, видел 2.1
Самое первое, в чём разочарую - в скриптах Гугл нет глобальных переменных (как уровня модуля в 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();
     
  listRng.setValue(list.getName());
  jachRng.setValue(jach.getA1Notation());  
};
   
function vernutca_polozhenie() {
  var list = ss.getSheetByName( listRng.getValue() );
  var jach = list.getRange( jachRng.getValue() );
   
  list.activate();
  list.setActiveSelection(jach);
}
[/vba]


МОИ: Ник, Tip box: 41001663842605

Сообщение отредактировал Gustav - Вторник, 17.10.2017, 19:12
 
Ответить
СообщениеСамое первое, в чём разочарую - в скриптах Гугл нет глобальных переменных (как уровня модуля в 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();
     
  listRng.setValue(list.getName());
  jachRng.setValue(jach.getA1Notation());  
};
   
function vernutca_polozhenie() {
  var list = ss.getSheetByName( listRng.getValue() );
  var jach = list.getRange( jachRng.getValue() );
   
  list.activate();
  list.setActiveSelection(jach);
}
[/vba]

Автор - Gustav
Дата добавления - 17.10.2017 в 17:38
grig5-05 Дата: Среда, 18.10.2017, 02:39 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 10
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Спасибо, все работает.

Подскажите ссылку, желательно на русском, как работать с
Цитата
либо специальные свойства проекта, доступные в Редакторе скриптов по меню: Файл \ Свойства проекта \ Свойства скрипта или Свойства пользователя.

Я в google что-то не нашел
 
Ответить
СообщениеСпасибо, все работает.

Подскажите ссылку, желательно на русском, как работать с
Цитата
либо специальные свойства проекта, доступные в Редакторе скриптов по меню: Файл \ Свойства проекта \ Свойства скрипта или Свойства пользователя.

Я в google что-то не нашел

Автор - grig5-05
Дата добавления - 18.10.2017 в 02:39
Gustav Дата: Среда, 18.10.2017, 07:03 | Сообщение № 4
Группа: Админы
Ранг: Участник клуба
Сообщений: 2808
Репутация: 1184 ±
Замечаний: ±

начинал с Excel 4.0, видел 2.1


МОИ: Ник, Tip box: 41001663842605
 
Ответить
Сообщениеhttps://developers.google.com/apps-sc....service

Автор - Gustav
Дата добавления - 18.10.2017 в 07:03
grig5-05 Дата: Четверг, 19.10.2017, 00:34 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 10
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Спасибо
 
Ответить
СообщениеСпасибо

Автор - grig5-05
Дата добавления - 19.10.2017 в 00:34
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!