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

Вход

Регистрация

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

 

= Мир MS Excel/Как сделать ссылку с якорем на конкретную строку в Google Та - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, китин  
Как сделать ссылку с якорем на конкретную строку в Google Та
rownong27 Дата: Вторник, 17.05.2016, 13:29 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 36
Репутация: 1 ±
Замечаний: 60% ±

Как сделать ссылку с якорем на конкретную строку в Google Таблице?

Например, чтобы при переходе по ссылке, документ автоматом скролился, например на 56 строку?

Скриншот: https://goo.gl/05Nb4x

Ссылка на демо файл (есть доступ к редактированию): https://goo.gl/zy3MB0

Помогите решить этот вопрос.
 
Ответить
СообщениеКак сделать ссылку с якорем на конкретную строку в Google Таблице?

Например, чтобы при переходе по ссылке, документ автоматом скролился, например на 56 строку?

Скриншот: https://goo.gl/05Nb4x

Ссылка на демо файл (есть доступ к редактированию): https://goo.gl/zy3MB0

Помогите решить этот вопрос.

Автор - rownong27
Дата добавления - 17.05.2016 в 13:29
Nic70y Дата: Вторник, 17.05.2016, 14:11 | Сообщение № 2
Группа: Друзья
Ранг: Экселист
Сообщений: 9005
Репутация: 2369 ±
Замечаний: 0% ±

Excel 2010
Вам сюда, тута Excel :(
[moder]Точно. Перенес.


ЮMoney 41001841029809

Сообщение отредактировал _Boroda_ - Вторник, 17.05.2016, 14:15
 
Ответить
СообщениеВам сюда, тута Excel :(
[moder]Точно. Перенес.

Автор - Nic70y
Дата добавления - 17.05.2016 в 14:11
rownong27 Дата: Вторник, 17.05.2016, 17:38 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 36
Репутация: 1 ±
Замечаний: 60% ±

Ок, ожидаю ответ.
 
Ответить
СообщениеОк, ожидаю ответ.

Автор - rownong27
Дата добавления - 17.05.2016 в 17:38
Gustav Дата: Вторник, 17.05.2016, 17:41 | Сообщение № 4
Группа: Админы
Ранг: Участник клуба
Сообщений: 2797
Репутация: 1161 ±
Замечаний: ±

начинал с Excel 4.0, видел 2.1
ожидаю ответ

Ответ готов через 3 минуты! :)

Штатного программируемого скроллинга в SpreadsheetApp я не нашёл. Наверное, есть этому какое-то разумное объяснение, связанное с какой-нибудь асинхронностью веб-приложений, не всегда понимаемой людьми, привыкшими безраздельно командовать своими VBA-макросами в локальной среде своего ПК. Лично я, например, тоже пока еще не всегда понимаю, но я стремлюсь :)

В общем, написал скриптовую функцию setAnchor(), которая по замыслу имитирует подобный скроллинг. При ее запуске в середине работы с таблицей всё происходит, как надо. Когда же запускаю тот же код в событийной функции onOpen(), чтобы типа всё красиво автоматически при открытии - то хоть ты тресни! - не выполняется второй оператор sheet.setActiveSelection('C56').

Хотя мне как-то показалось, что курсор на какое-то мгновение всё-таки замирает на ячейке C56 и потом пролетает вниз до C300. Т.е. как бы операторы setActiveSelection выполняются в обратном порядке, или, если быть еще более точным, то выполняются сверху вниз по строкам таблицы... Но не буду делать более никаких умозаключений, может быть какой умник когда-нибудь напишет об этом и всё объяснит - тогда и почитаем. А пока - просто поимеем в виду. Кстати, возможно что-то может зависеть и от конкретного браузера (я тестировался в Chrome).

Еще раз подчеркиваю - проблема "недострела" до ячейки C56 существует только при открытии таблицы, когда код setAnchor() исполняется внутри onOpen(). Ну, а чтобы быстренько исправить этот "недострел" можно воспользоваться соответствующей командой из "User Menu", которое любезно появляется в строке меню таблицы после отработки onOpen().

[vba]
Код
function onOpen() {

  var ui = SpreadsheetApp.getUi();
  ui.createMenu('User Menu')
    .addItem("Бросить якорь в C56", 'setAnchor')
    .addToUi();
  
  // setAnchor(); // в этом месте отрабатывает как-то не полностью...  (( не будем выполнять здесь!
}

function setAnchor() {

  var ss  = SpreadsheetApp.getActiveSpreadsheet()
  var sheet = ss.getSheetByName('Лист1');
  sheet.activate();
  sheet.setActiveSelection('C300'); // первый "прыжок" - заведомо ниже, не на один экран
  sheet.setActiveSelection('C56');  // возврат с выходом в нужную точку при обратном скроллинге  

}
[/vba]
Если кто еще не знает, текст функций надо скопировать и вставить в Редактор скриптов (по меню Google-таблицы "Инструменты | Редактор скриптов"). Функцию onOpen() НЕ надо настраивать как триггер - среда обрабатывает ее автоматически по предопределенному имени.

P.S. rownong27, я вставил свой код в таблицу по Вашей ссылке: https://goo.gl/zy3MB0 . Не пугайтесь! :)


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

Сообщение отредактировал Gustav - Среда, 18.05.2016, 12:10
 
Ответить
Сообщение
ожидаю ответ

Ответ готов через 3 минуты! :)

Штатного программируемого скроллинга в SpreadsheetApp я не нашёл. Наверное, есть этому какое-то разумное объяснение, связанное с какой-нибудь асинхронностью веб-приложений, не всегда понимаемой людьми, привыкшими безраздельно командовать своими VBA-макросами в локальной среде своего ПК. Лично я, например, тоже пока еще не всегда понимаю, но я стремлюсь :)

В общем, написал скриптовую функцию setAnchor(), которая по замыслу имитирует подобный скроллинг. При ее запуске в середине работы с таблицей всё происходит, как надо. Когда же запускаю тот же код в событийной функции onOpen(), чтобы типа всё красиво автоматически при открытии - то хоть ты тресни! - не выполняется второй оператор sheet.setActiveSelection('C56').

Хотя мне как-то показалось, что курсор на какое-то мгновение всё-таки замирает на ячейке C56 и потом пролетает вниз до C300. Т.е. как бы операторы setActiveSelection выполняются в обратном порядке, или, если быть еще более точным, то выполняются сверху вниз по строкам таблицы... Но не буду делать более никаких умозаключений, может быть какой умник когда-нибудь напишет об этом и всё объяснит - тогда и почитаем. А пока - просто поимеем в виду. Кстати, возможно что-то может зависеть и от конкретного браузера (я тестировался в Chrome).

Еще раз подчеркиваю - проблема "недострела" до ячейки C56 существует только при открытии таблицы, когда код setAnchor() исполняется внутри onOpen(). Ну, а чтобы быстренько исправить этот "недострел" можно воспользоваться соответствующей командой из "User Menu", которое любезно появляется в строке меню таблицы после отработки onOpen().

[vba]
Код
function onOpen() {

  var ui = SpreadsheetApp.getUi();
  ui.createMenu('User Menu')
    .addItem("Бросить якорь в C56", 'setAnchor')
    .addToUi();
  
  // setAnchor(); // в этом месте отрабатывает как-то не полностью...  (( не будем выполнять здесь!
}

function setAnchor() {

  var ss  = SpreadsheetApp.getActiveSpreadsheet()
  var sheet = ss.getSheetByName('Лист1');
  sheet.activate();
  sheet.setActiveSelection('C300'); // первый "прыжок" - заведомо ниже, не на один экран
  sheet.setActiveSelection('C56');  // возврат с выходом в нужную точку при обратном скроллинге  

}
[/vba]
Если кто еще не знает, текст функций надо скопировать и вставить в Редактор скриптов (по меню Google-таблицы "Инструменты | Редактор скриптов"). Функцию onOpen() НЕ надо настраивать как триггер - среда обрабатывает ее автоматически по предопределенному имени.

P.S. rownong27, я вставил свой код в таблицу по Вашей ссылке: https://goo.gl/zy3MB0 . Не пугайтесь! :)

Автор - Gustav
Дата добавления - 17.05.2016 в 17:41
rownong27 Дата: Среда, 18.05.2016, 02:15 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 36
Репутация: 1 ±
Замечаний: 60% ±

Там в моем файле https://goo.gl/zy3MB0 было обсуждение вопроса.
Решили что проще через комментарий якорь выставляться.
Gustav вам все равно большое спасибо за ответ. Ответственно подходите к вопросу
 
Ответить
СообщениеТам в моем файле https://goo.gl/zy3MB0 было обсуждение вопроса.
Решили что проще через комментарий якорь выставляться.
Gustav вам все равно большое спасибо за ответ. Ответственно подходите к вопросу

Автор - rownong27
Дата добавления - 18.05.2016 в 02:15
Gustav Дата: Среда, 18.05.2016, 12:38 | Сообщение № 6
Группа: Админы
Ранг: Участник клуба
Сообщений: 2797
Репутация: 1161 ±
Замечаний: ±

начинал с Excel 4.0, видел 2.1
Решили что проще через комментарий якорь выставлять

Что ж, "хозяин - барин"! Это Ваш выбор.

Тоже освоил этот способ. Прикольно. Буду знать, но применять в таком контексте - вряд ли. Из-за того, что:
1. При переходе внутри файла по гиперссылке фактически открывается новое окно (новая сессия) для работы с тем же файлом. Сколько раз нажмете на гиперссылку - столько новых окон откроется.
2. У ячейки назначения обязательно должен присутствовать комментарий, который немного раздражает.
3. Как такового скроллинга не происходит - ячейка назначения после перехода возникает в центре экрана.

Мой скрипт, вызываемый через "User Menu" (работоспособность которого я, кстати, восстановил) в этих же моментах выгодно отличается yes Из-за того, что:
1. Переход выполняется чисто внутри файла, без открытия новой сессии. И, заметьте, из любой ячейки всех листов, а не только из ячейки с гиперссылкой.
2. Никаких отметок ячейки назначения не требуется.
3. Скроллинг происходит так, что строка с ячейкой назначения после перехода оказывается первой на экране (первой в видимой в данный момент части таблицы).

Некоторое неудобство скрипта связано с тем, что он начинает работать правильно только со 2-го раза. Это тоже связано с некоторыми "непонятками", которые я описываю в своем предыдущем посте (№ 4). Как я понял, пошерстив Сеть, это какой-то баг Google, который они еще не исправили.

А способ с комментарием мне интересен, в первую очередь, для возможности входа в нужное место (ячейку) таблицы ИЗВНЕ, т.е. применяя ссылку в адресной строке браузера или в теле другого документа.

И на заметку. Параметр "disco=...", который присутствует в ссылке на комментарий, не имеет отношения к дискотеке и, вероятно, расшифровывается как "discussion comment" ("дискуссионный комментарий", "комментарий обсуждения"). Но парни из Google - с юмором! :)


МОИ: Ник, Tip box: 41001663842605
 
Ответить
Сообщение
Решили что проще через комментарий якорь выставлять

Что ж, "хозяин - барин"! Это Ваш выбор.

Тоже освоил этот способ. Прикольно. Буду знать, но применять в таком контексте - вряд ли. Из-за того, что:
1. При переходе внутри файла по гиперссылке фактически открывается новое окно (новая сессия) для работы с тем же файлом. Сколько раз нажмете на гиперссылку - столько новых окон откроется.
2. У ячейки назначения обязательно должен присутствовать комментарий, который немного раздражает.
3. Как такового скроллинга не происходит - ячейка назначения после перехода возникает в центре экрана.

Мой скрипт, вызываемый через "User Menu" (работоспособность которого я, кстати, восстановил) в этих же моментах выгодно отличается yes Из-за того, что:
1. Переход выполняется чисто внутри файла, без открытия новой сессии. И, заметьте, из любой ячейки всех листов, а не только из ячейки с гиперссылкой.
2. Никаких отметок ячейки назначения не требуется.
3. Скроллинг происходит так, что строка с ячейкой назначения после перехода оказывается первой на экране (первой в видимой в данный момент части таблицы).

Некоторое неудобство скрипта связано с тем, что он начинает работать правильно только со 2-го раза. Это тоже связано с некоторыми "непонятками", которые я описываю в своем предыдущем посте (№ 4). Как я понял, пошерстив Сеть, это какой-то баг Google, который они еще не исправили.

А способ с комментарием мне интересен, в первую очередь, для возможности входа в нужное место (ячейку) таблицы ИЗВНЕ, т.е. применяя ссылку в адресной строке браузера или в теле другого документа.

И на заметку. Параметр "disco=...", который присутствует в ссылке на комментарий, не имеет отношения к дискотеке и, вероятно, расшифровывается как "discussion comment" ("дискуссионный комментарий", "комментарий обсуждения"). Но парни из Google - с юмором! :)

Автор - Gustav
Дата добавления - 18.05.2016 в 12:38
rownong27 Дата: Среда, 18.05.2016, 15:39 | Сообщение № 7
Группа: Пользователи
Ранг: Новичок
Сообщений: 36
Репутация: 1 ±
Замечаний: 60% ±

1. При переходе внутри файла по гиперссылке фактически открывается новое окно (новая сессия) для работы с тем же файлом. Сколько раз нажмете на гиперссылку - столько новых окон откроется.

Не страшно, Google Таблицы предназначены для совместной работы разных пользователей. Поэтому если у себя самого пару экранов отрылось одной и той же страницы - без проблем.

2. У ячейки назначения обязательно должен присутствовать комментарий, который немного раздражает.

Просто "1" ставлю да и все)

3. Как такового скроллинга не происходит - ячейка назначения после перехода возникает в центре экрана.

Не знаю, у меня скролится до нужного места (прямо перематывает экран)

Мой скрипт, вызываемый через "User Menu" (работоспособность которого я, кстати, восстановил) в этих же моментах выгодно отличается Из-за того, что:
1. Переход выполняется чисто внутри файла, без открытия новой сессии. И, заметьте, из любой ячейки всех листов, а не только из ячейки с гиперссылкой.
2. Никаких отметок ячейки назначения не требуется.
3. Скроллинг происходит так, что строка с ячейкой назначения после перехода оказывается первой на экране (первой в видимой в данный момент части таблицы).

Оке буду иметь в виду для реализации некоторых типов задач.

И на заметку. Параметр "disco=...", который присутствует в ссылке на комментарий, не имеет отношения к дискотеке и, вероятно, расшифровывается как "discussion comment" ("дискуссионный комментарий", "комментарий обсуждения"). Но парни из Google - с юмором!

Да еще те юмористы:)

_______________________________

У меня тут появился актуальны вопрос по настройке консолидации (объединение данных) Google Таблиц. Тему уже создал на этом форуме: http://www.excelworld.ru/forum/23-23640-1
Прошу помочь разобраться (т.к. ждут проекты, которые зависят от решения этой проблемы).
Могли бы глянуть и отписаться в той теме?
 
Ответить
Сообщение
1. При переходе внутри файла по гиперссылке фактически открывается новое окно (новая сессия) для работы с тем же файлом. Сколько раз нажмете на гиперссылку - столько новых окон откроется.

Не страшно, Google Таблицы предназначены для совместной работы разных пользователей. Поэтому если у себя самого пару экранов отрылось одной и той же страницы - без проблем.

2. У ячейки назначения обязательно должен присутствовать комментарий, который немного раздражает.

Просто "1" ставлю да и все)

3. Как такового скроллинга не происходит - ячейка назначения после перехода возникает в центре экрана.

Не знаю, у меня скролится до нужного места (прямо перематывает экран)

Мой скрипт, вызываемый через "User Menu" (работоспособность которого я, кстати, восстановил) в этих же моментах выгодно отличается Из-за того, что:
1. Переход выполняется чисто внутри файла, без открытия новой сессии. И, заметьте, из любой ячейки всех листов, а не только из ячейки с гиперссылкой.
2. Никаких отметок ячейки назначения не требуется.
3. Скроллинг происходит так, что строка с ячейкой назначения после перехода оказывается первой на экране (первой в видимой в данный момент части таблицы).

Оке буду иметь в виду для реализации некоторых типов задач.

И на заметку. Параметр "disco=...", который присутствует в ссылке на комментарий, не имеет отношения к дискотеке и, вероятно, расшифровывается как "discussion comment" ("дискуссионный комментарий", "комментарий обсуждения"). Но парни из Google - с юмором!

Да еще те юмористы:)

_______________________________

У меня тут появился актуальны вопрос по настройке консолидации (объединение данных) Google Таблиц. Тему уже создал на этом форуме: http://www.excelworld.ru/forum/23-23640-1
Прошу помочь разобраться (т.к. ждут проекты, которые зависят от решения этой проблемы).
Могли бы глянуть и отписаться в той теме?

Автор - rownong27
Дата добавления - 18.05.2016 в 15:39
vikatop Дата: Вторник, 24.01.2017, 14:05 | Сообщение № 8
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Gustav, работает!!!! clap respect pray
спасибо огромное)))
 
Ответить
СообщениеGustav, работает!!!! clap respect pray
спасибо огромное)))

Автор - vikatop
Дата добавления - 24.01.2017 в 14:05
  • Страница 1 из 1
  • 1
Поиск:

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