2013-09-30 3 views
2

Я недавно начал возиться с скриптом google для электронных таблиц, и мне было интересно, есть ли способ изменить значение ячеек на основе выбранной ячейки? Например, если ячейка, отображающая номер строки, находится в A1, а пользователь выделяет B8, A1 отображает «8». Возможно ли это?Сценарий Google Spreadsheet - динамическое изменение содержимого ячейки на основе выбранной ячейки?

Перелистывание страницы сервисов электронной таблицы приложений Google-скриптов, и я заметил класс под названием .getActiveCell, и я предполагаю, что это будет ключевой компонент, но я как бы потерян. Может кто-то указать мне верное направление?

Благодарим за любую помощь.

ответ

1

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

function onEdit(){ 
    var ss = SpreadsheetApp.getActive(); 
    var cell = ss.getActiveCell(); 
    ss.getRange('A1').setValue(cell.getA1Notation().replace(/[^0-9]/g, ''));// get A1 notation and rip off any non numeric value to keep only the row number 
} 

Насколько я знаю, нет прямого метода для выбора с помощью простого нажатия или нажатия клавиши.

+0

Ах, я вижу. Он устанавливает значение ячейки с формулой, основанной на последней отредактированной ячейке. Я надеялся на то, что будет обновляться с каждым новым выбором ячейки вместо редактирования, но я боюсь, что вы правы. Я смотрю по сети, и похоже, что это было бы невозможно, не будучи невероятно хакерским. Ваш метод должен быть достаточно хорош для того, что я пытаюсь сделать. Спасибо за помощь! P.S. Извините, что вы не голосовали. Я просто присоединился, когда задал этот вопрос, и мне, видимо, нужна репутация 15, прежде чем я смогу проголосовать за людей. – agentfros

+0

Принять достаточно :-) спасибо. И ваше право, было бы хорошо, если бы это было возможно ... кто знает? возможно когда-нибудь ! –

+0

Возможно, когда-нибудь. На самом деле, я отправлю запрос на это в Google. Кто знает, может быть, это сделает. – agentfros

0

Google Spreadsheet Скрипт позволяет регистрируя onChange(e) триггер:

Installable Triggers

function createSpreadsheetEditTrigger() { 
    var ss = SpreadsheetApp.getActive(); 
    ScriptApp.newTrigger('myFunction') 
     .forSpreadsheet(ss) 
     .onChange() 
     .create(); 
} 

Я не пробовал, если это стреляет, когда выбор изменяется.

Смежные вопросы