#google-apps-script #google-sheets
#google-apps-script #google-таблицы
Вопрос:
У меня есть электронная таблица Google с таблицей, вызываемой Wrapped Sheet
для ответов, собранных из формы Google. При каждом новом добавленном ответе (таким образом, функция onEdit) я хочу вызывать Wrap Text
опцию для всех ячеек. Я открыл редактор сценариев и создал onEdit.gs
следующий код:
function onEdit(){
var activeSheet = SpreadsheetApp.getActiveSpreadsheet();
if(activeSheet.getName() == "Wrapped Sheet") {
var dataRange = activeSheet.getRange(1,1,data.length,headers.length);
dataRange.setWrap(true);
}
}
Однако функция не запускается при новом ответе. Кроме того, вызов его вручную из редактора сценариев не сообщает о какой-либо ошибке.
Ответ №1:
Если бы каждый ответ S.O. был ссылкой на read docs, S.O. был бы бессмысленным.
Итак, как упоминал орширо… И, как упоминалось в этом ответе S.O…. https://webapps.stackexchange.com/questions/88543/how-to-automatically-wrap-text-to-new-responses-from-a-form-in-a-google-spreadsh
Фактический ответ:
function wrap(e) {
e.range.setWrap(true);
}
Комментарии:
1. Спасибо! Кроме того, здорово читать не очень упрямый (или более спокойный) ответ вместо того, который пытается заставить вас делать дополнительные вещи плюс ответ.
Ответ №2:
Вы должны пойти и прочитать документы о событиях Google Script полностью.
Вы обнаружите, что для вашего варианта использования существует конкретное событие: при отправке формы. Вместо выполнения вашего кода при изменении листа (функция onEdit (e)) вы должны выполнить код при отправке формы.
В тех же документах вы можете найти пример того, как использовать этот триггер.
ПРИМЕЧАНИЕ: Имейте в виду, что существует 2 типа триггеров событий: простые и установленные. Событие onFormSubit реагирует на установленный триггер (опять же, вы найдете все в документах).
Комментарии:
1. Кроме того, вы проверяете имя электронной таблицы, а не имя листа, поэтому оно не работает.
2. Спасибо, что указали мне правильные источники. Фактическое решение оказалось очень простым и требует только
onFormSubmit
функции:function onFormSubmit(e) { e.range.setWrap(true); }