@maratmd

Как сделать ссылку на ячейку в виде скрипта?

Привет, у меня очень длинная таблица, и с помощью кнопок хочу сделать собственное меню, которое прикреплю на первой строке. Как я понимаю к каждой кнопке можно прикрепить скрипт. Как можно например сделать скрипт который будет вести например на ячейку А956, и так далее. Одна кнопка ведет на одну ячейку, вторая кнопка на другую. Пробовал делать просто ссылки на ячейки, выглядит не очень, так как при наведении, выходит ссылка, на которую нужно нажимать. А хотелось бы просто кнопку, как на сайтах.

Если кто знает, буду рад за подробный ответ, так как я не особ в этом понимаю.
  • Вопрос задан
  • 231 просмотр
Решения вопроса 2
oshliaer
@oshliaer Куратор тега Google Sheets
Google Products Expert
Добавьте следующий код для проекта вашей Таблицы

const goToWrapper_ = (address) => {
  const range = getRangeByRefString_(SpreadsheetApp.getActiveSheet(), address);
  range.getSheet().getRange('A1').activate();
  range.activate();
}

function getRangeByRefString_(sheet, refString) {
  return refString.indexOf('!') === -1 ?
    sheet.getRange(refString) :
    sheet.getParent().getRange(refString);
}

function goTo555() {
  goToWrapper_('A555');
}

function goToSheet5A555() {
  goToWrapper_('Sheet5!A555');
}


Назначьте скрипт кнопке

6100fb73c48a3821432145.png

Пример в Таблице https://docs.google.com/spreadsheets/d/1XO63gawVjR...

Можно создать быстрое меню (не кнопку) практически любого адреса. Но там придется вызывать меню. А это на целый клик больше!
Ответ написан
Fzero0
@Fzero0
Вечный студент
Можно сделать свое меню для навигации
function onOpen() {
  var ui = SpreadsheetApp.getUi();
  ui.createMenu('Моя навигация')
      .addItem('Ячейка A555', 'menuItem1')
      .addSeparator()
      .addSubMenu(ui.createMenu('Важно')
          .addItem('Ячейка H555', 'menuItem2'))
      .addToUi();
}

function menuItem1() {
  SpreadsheetApp.getUi() 
     SpreadsheetApp.getActiveSheet().getRange('A555').activate();
}

function menuItem2() {
  SpreadsheetApp.getUi() 
      SpreadsheetApp.getActiveSheet().getRange('h555').activate();
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы