2015-07-01 3 views
1

Я новичок в программировании, поэтому несите меня здесь. Я пишу сценарий, который, между прочим, принимает значение ячейки при редактировании, а затем подчеркивает серию ячеек в разных диапазонах. Данная ячейка имеет на ней проверку, чтобы пользователь мог выбирать только из диапазона опций из выпадающего меню.Скрипт приложений Google Таблицы onEdit() Trigger

Функция проверки достоверно работает из того, что я могу сказать, но когда я редактирую указанную ячейку, выбирая одно из раскрывающихся меню, ничего не происходит. Нужно ли мне называть функцию onEdit(e)? Я читал ссылки api и искал stackoverflow и веб для справки, но я застрял.

Просим сообщить; любая помощь приветствуется. Вот соответствующая часть моего кода:

function validateLeagueSizeInput(sheet) { 
    var cell = sheet.getRange('G2'), 
     values = [[8], [10], [12]], 
     range = sheet.getRange('A998:A1000').setValues(values), 
     rule = SpreadsheetApp.newDataValidation().requireValueInRange(range, true).build(); 
    cell.setDataValidation(rule); 
} 

function onEdit(e) { 
    var cell = e.value, 
     range = SpreadsheetApp.getActiveSheet().getRange('A2:F301'); 
    for (var i = cell + 1; i < Math.floor(301/cell); i += cell) { 
    for (var j = 1; j <= 6; j++) { 
     range[i][j].setBorder(null, null, true, null, null, null); 
    } 
    } 
} 
+1

«жесткий код» значение переменной 'cell' ->' var cell = 5; '. Затем установите точку останова и запустите отладчик. [Ссылка на документацию Google - поиск и устранение неисправностей] (https://developers.google.com/apps-script/troubleshooting#using_the_debugger_and_breakpoints) Пройдите через код. Если вы не уверены, запущена ли функция 'onEdit()', добавьте 'Logger.log ('it ran!' + E.value); оператор сверху, отредактируйте ячейку, затем ПРОСМОТРЕТЬ LOGS. –

+0

Спасибо за совет, @SandyGood! Я попытался зарегистрировать ранее переменную 'cell', и функция' onEdit (e) 'определенно не запускается. Возможно, параметры, выбранные из выпадающего меню, не запускают функцию 'onEdit()', поскольку @Mogsdad ускользнул. –

+0

Попробуйте установленное событие триггера изменения. –

ответ

2

Есть много изменений электронных таблиц, которые не вызывают onEdit() функции - вы можете просто быть первым человеком, чтобы сообщить об этом конкретных один. См. Detect user inserting row or column in a google spreadsheet and reacting in a script.

+0

Спасибо за информацию, @Mogsdad! Можете ли вы подумать о другом способе вызывать подчеркивание кода, позволяя пользователю выбирать только из конечного списка параметров? –

+0

Еще раз спасибо за ввод. Я решил просто создать пункт меню и выполнить код при его срабатывании таким образом. –