Задать вопрос
@Siroejka

Как настроить переход с одной ячейки на ячейку другого листа в одном документе в Google docs?

Есть два листа "Лист1-Меню" и "Дист2-Состав" в первом названия продуктов, во втором их составы. Нужно сделать привязку, чтобы при нажатии на названии продукта осуществлялся переход на состав, а именно на заданную ячейку на другом листе.

Пока получилось такая формула:
=HYPERLINK("https://docs.google.com/spreadsheets/d/1nH7KOE-J9V...";'Состав'!A2)

Плюс в том, что сейчас в ячейке первого листа отображается содержимое нужной ячейки второго листа.
Минус в том, что переход по гиперссылке открывает дополнительное окно в браузере (не критично) и что переход осуществляется только на первую ячейку листа (критично).
Видимо, нужно знать нужные ключи чтобы скорректировать переход. Буду очень признателен за помощь.
  • Вопрос задан
  • 14445 просмотров
Подписаться 1 Оценить 7 комментариев
Пригласить эксперта
Ответы на вопрос 2
@wel34
Можно сделать так.
Рядом с каждым из продуктов на листе меню создать ячейку в которой будет проверка данных (Что сделать,Посмотреть Состав)

Далее включаем отслеживание изменений в этом столбце. Если пользователь выбрал пункт "Посмотреть состав", тогда скрипт
1.Возвращает Выбраный пункт в исходное состояние
2. Переносит пользователя на лист "Состав" в нужную ячейку

Можно реализовать по другому
В самом низу меню сделать ячейку с проверкой данных (Посмотреть Состав, Продукт1,Продукт2,Продукт3 и.т.д.)
Включаем отслеживание в этой ячейки, всё остальное по аналогии

Включить отслеживание можно так:
Пример взят отсюда
https://docs.google.com/spreadsheets/d/1426DVhMo3-...

//Функция для отслеживания изменений
function onEdit(event) {
var sheet = event.source.getActiveSheet();//Лист в котором произошло изменение
var sheetName = event.source.getActiveSheet().getSheetName() // Получаем имя листа который активен
var actRng = event.source.getActiveRange();//Ячейка в которой произошло изменение
var Row = actRng.getRowIndex();.//Строка в котором произошло изменение
var Col = actRng.getColumnIndex();//Столбец в котором произошло изменение

var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("Лист1");//Лист где нужно изменения отлавливать

//Ниже включена проверка. Срабатывает если Изменения произошли в первой строке, в первом столбце, на листе "Лист1" и если это изменение не равно "Куда перейти"
if (Row == 1 && Col == 1 && sheetName == "Лист1" && sheet.getRange("A1").getValue() != 'Куда перейти' ) {
activat(sheet.getRange("A1").getValue())//Здесь переходим в функцию изменений
sheet.getRange("A1").setValue('Куда перейти') //Переводим ячейку выбора в исходное состояние
}
}

//Функция перехода (В данном случае она просто выделяет диапазон, но можно добавить и другой функциональности)
function activat(sheetName) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName(sheetName);
var range = sheet.getRange("A1:D10");//Какой диапазон выделить при переходе
range.activate();
}
Ответ написан
Комментировать
ApoevAV
@ApoevAV
Illustrator
Что бы не открывалось дополнительное окно, для перехода по листам нужно в формуле указать только код листа
61c981e1a683a782573079.png
=HYPERLINK("#gid=319212120";'Состав'!A2)
Для перехода на конкретную ячейку добавить &range=A2
=HYPERLINK("#gid=319212120&range=A2";'Состав'!A2)
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы