У меня сложная электронная таблица Google с множеством листов и оглавлением. Есть ли способ создать ссылку на имена листов, чтобы одним щелчком мыши можно было перейти непосредственно к листу? То есть: нажав на ячейку «лист5» переключается на лист5?
google-sheets
google-apps-script
JBWhitmore
источник
источник
Ответы:
Когда вы переключаетесь на другой лист в Google Spreadsheets, обратите внимание на URL в адресной строке вашего браузера. В конце URL вы должны увидеть что-то вроде:
Этот номер изменяется при переключении листов и указывает, какой лист отображать. Скопируйте весь URL и создайте гиперссылку на него по следующей формуле:
Со скриптом
Я много думал об этом вопросе с тех пор, как впервые написал этот ответ, и я нашел решение, включающее сценарий.
Открыв таблицу, откройте меню « Сервис» , затем « Редактор сценариев ...» . Вставьте весь этот код в редактор:
Сохраните сценарий, затем обновите электронную таблицу. Через секунду или две после Справки появится новое меню Задачи . В этом меню есть один пункт: Перейти на лист ...
Этот пункт меню откроет панель со списком имен всех листов в текущей электронной таблице. Это не похоже на это, но если вы нажмете на одно из имен листов, этот лист выйдет вперед.
Как ответ на другой вопрос, этот скрипт был улучшен, чтобы включить прокручиваемый вид и кнопки.
источник
gid=7
.gid=7
, это должен быть восьмой лист слева.gid
Sheet5, только вручную. Если позиция меняется, онаgid
меняется, и вы больше не можете надежно на нее ссылаться.Из моего опыта лучший способ сделать это - привязать функцию к кнопке / изображению. Единственным недостатком является то, что вы не можете передавать параметры вместе со сценарием, назначенным кнопке. В связи с этим вам нужно будет создать функцию, специфичную для каждой навигации, но они могут вызываться в одном файле сценария.
шаги:
Создайте изображение («Вставка» -> «Изображение») и настройте его по своему вкусу.
Создайте пользовательскую функцию со следующим:
а затем функция, специфичная для вашей кнопки
Наконец, назначьте эту функцию вашей кнопке
Теперь вы сможете нажать на кнопку и перейти к «Листу 5». Это также можно изменить, чтобы перейти к определенной области листа.
источник
var sheet = ss.getSheetByName(ss.getActiveCell().getValue());
- затем вы можете поместить «кнопку» в фиксированное место на экране. и пометить его «Перейти к листу в текущей ячейке» и назначить его «showSheetByName» (которому теперь не нужен параметр). Чтобы использовать, просто выделите ячейку с именем листа (например, Sheet5) и нажмите кнопку. Это немного косвенно, но работает, потому что нажатие на кнопку не удаляет фокус из выделенной ячейки.