Мне нужно найти способ иметь несколько вариантов выбора в изменении формы Google на основе набора ячеек в электронной таблице Google, который постоянно меняется. Любые идеи?
Форма электронной таблицы Google, заполняет формы на основе электронной таблицы.
Ответ 1
Запрошенная функция не существует. Запрос функции, связанный с привязкой форм Google к электронным таблицам, будет лучшим выбором для синхронизации этих двух.
Всегда существует возможность создать форму с использованием параметров URL, как описано здесь: https://docs.google.com/support/bin/answer.py?hl=en&answer=160000
Ответ 2
Это возможно. Напишите свою собственную script в электронной таблице, чтобы обновить форму. Если вы не знакомы с написанием script, вы можете найти кого-то в галерее Google script. Посмотрим на образец моего script. script должен обновить два списка.
function updateForm(){
// a way to get the items from the form
var form = FormApp.openById("<your form id>");
var agentList = form.getItemById(<your item id>).asListItem();
var hotelList = form.getItemById(<your item id>).asListItem();
var ss = SpreadsheetApp.getActive();
var agents = ss.getSheetByName("Agents");
var hotels = ss.getSheetByName("Hotels");
// get the values in the first column accept header row 1
var agentValues = agents.getRange(2, 1, agents.getMaxRows() - 1).getValues();
var hotelValues = hotels.getRange(2, 1, hotels.getMaxRows() - 1).getValues();
var agentNames = [];
var hotelNames = [];
// convert 2D to 1D array and ignore empty cells
for(var i = 0; i < agentValues.length; i++) {
if(agentValues[i][0] != "") {
agentNames[i] = agentValues[i][0];
}
}
for(var i = 0; i < hotelValues.length; i++) {
if(hotelValues[i][0] != "") {
hotelNames[i] = hotelValues[i][0];
}
}
// populate the list
agentList.setChoiceValues(agentNames);
hotelList.setChoiceValues(hotelNames);
}
Вы также можете связать эту функцию с событиями изменения/изменения электронной таблицы, чтобы автоматически обновлять список.