Google Sheets - Отслеживать текущий выбор ячеек? - PullRequest
0 голосов
/ 11 января 2019

Как получить текущую выбранную ячейку / диапазон? спросили 3,5 года назад, но я надеюсь, что с тех пор был достигнут некоторый прогресс.

Я хотел бы создать интерактивную электронную таблицу, в которой есть логическая сетка, которая будет отображать дополнительную информацию о состоянии выбранной в данный момент ячейки в статическом месте, позволяя пользователям быстро перемещаться с помощью клавиш со стрелками.

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

function currentCell() {
  return SpreadsheetApp.getActive().getActiveRange().getA1Notation();
}

При тестировании эта функция возвращает адрес ячейки, из которой вызывается функция. Я пытался нажать F5 при выделении другой ячейки, но ничего не произошло. Я также перетащил формулу в выделенную область, и каждая ячейка содержит только свой собственный адрес (согласно документации она должна содержать диапазон).

Я также прочитал пост Энрике о кешировании с 2012 года, и хотя я до конца не понимаю его, я понял, что мы не можем получить скрипты, которые обновляются без внесения изменений или ручного обновления формул.

В идеале хотелось бы, чтобы текущая ячейка отслеживалась без каких-либо дополнительных запросов от пользователя, кроме навигации по стрелке или щелчка для выбора ячейки, но если нажатие неизменяющей клавиши (например, Enter) позволит отслеживать, что было бы хорошо. Мне также нужна только выбранная ячейка, а не диапазон, если это облегчает задачу.

Явный вопрос: Можно ли отследить положение выбранной в данный момент ячейки в Google Sheets и сохранить ее в отдельной ячейке? Если нет, есть ли способ сделать это без изменения значений ячеек?

РЕДАКТИРОВАТЬ: Добавление примера для ясности. В этом концептуальном примере A2 =currentCell(), как описано выше. Если бы я нажал правую клавишу со стрелкой, A2 обновился бы, чтобы отобразить I4, так как теперь это текущий выбор. Current selection position stored in A2.

EDIT2: Ответ Джейсона Олсхорна на выбранные диапазоны таблицы монитора скриптов приложения Google позволяет отображать текущий выбор (диапазон) во вводимом тексте HTML. Я хотел бы сделать это, но хранить значение в статической ячейке на листе, а не вводить текст. Я новичок в написании сценариев в Sheets и действительно знаю только то, что нашел для решения этой проблемы, поэтому, если я что-то пропускаю, пожалуйста, дайте мне знать. Я посмотрел пример листа Джейсона, и мне не было ясно, что на самом деле там происходит.

1 Ответ

0 голосов
/ 12 января 2019

Вам нужно будет применить метод, предложенный для Как сделать, чтобы значения на боковой панели отображались из ячеек? . Это заключается в использовании клиентского кода для постоянного извлечения значений из электронной таблицы и последующего выполнения соответствующей задачи.

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

...