-1

Я нашел этот скрипт на YouTube Джейсоном Юротичем.Корректировка скрипта: измените флажок в форме вместо элементов списка

https://www.youtube.com/watch?v=sRlG58VKWNs.

Позволяет обновлять многочисленные формы в папке (тип вопроса = выберите из списка).

Интересно, можно ли изменить этот вопрос, чтобы также включить вопросы о флажках.

Я попробовал удваивая сценарий и во второй части, изменяющей

var agentList = item.asListItem()  to var agentList = item.asCheckboxItem() 

Это не сработало. И я искал другие скрипты без успеха.

Сценарий от Джейсона выглядит следующим образом

function updateLists() { 
var files = DriveApp.getFolderById("FOLDER ID HERE").getFiles() 
while (files.hasNext()) { 
    var file = files.next(); 
    var form = FormApp.openById(file.getId()) 
    var items = form.getItems(); 
    for (var i = 0; i < items.length; i += 1){ 
    var item = items[i] 
    if (item.getTitle() === "QUESTION TITLE HERE"){ 
    var agentList = item.asListItem() 
    } 
    } 
var ss = SpreadsheetApp.getActive().getSheetByName("SHEET NAME HERE"); 
    var agentValues = ss.getRange(1, 1, ss.getMaxRows() - 1).getValues(); 
    var agentNames = []; 
    for(var i = 0; i < agentValues.length; i++) 
    if(agentValues[i][0] != "") 
    agentNames[i] = agentValues[i][0]; 
    agentList.setChoiceValues(agentNames); 
} 
} 

Mr Rebot - Я стараюсь

function updateLists() { 
var files = DriveApp.getFolderById("0B8ZhY7dtctaMb0Vmb2RLdjhWM2M").getFiles() 
while (files.hasNext()) { 
    var file = files.next(); 
    var form = FormApp.openById(file.getId()) 
    var items = form.getItems(); 
    for (var i = 0; i < items.length; i += 1){ 
    var item = items[i] 
    if (item.getTitle() === "EVENTS"){ 

    var agentList = item.asCheckboxItem()//checkbox option 
    var agentList = item.asListItem()//list option 

    } 
    } 
var ss = SpreadsheetApp.getActive().getSheetByName("EVENTS"); 
    var agentValues = ss.getRange(1, 1, ss.getMaxRows() - 1).getValues(); 
    var agentNames = []; 
    for(var i = 0; i < agentValues.length; i++)  
    if(agentValues[i][0] != "") 
    agentNames[i] = agentValues[i][0]; 
    agentList.setChoiceValues(agentNames); 
}} 

И только элементы списка обновления
Ошибка: Неправильное преобразование типа элемента: LIST. (строка 12, файл «Код»)

Возможно, его линия одна из кодов?

+0

Похоже, что вы назначаете одно и то же имя двум различным функциям. Я думаю, что когда это произойдет, первая функция будет проигнорирована. С другой стороны, если вы еще не читали https://developers.google.com/apps-script/troubleshooting, пожалуйста, сделайте это, и если у вас все еще есть проблемы с вашим кодом, включите сообщения об ошибках, если есть какие-либо ошибки, иначе результат, который вы получите. –

+0

Hi Ruben - я изменяю вторую функцию: function updateLists2 и ошибка onrun: Недопустимое преобразование для типа элемента: CHECKBOX (строка 11, файл «Код») – HarryHoe

+0

Вопрос не редактировался после моего сегодняшнего редактирования. Где вы это сделали? Добавьте эти выводы к своим вопросам как часть вашего исследования (ссылка [ask]). –

ответ

-1

Я думаю, что проблема, с которой вы столкнулись, заключается в том, что вы пытаетесь задать тип вопроса multipleChoice в тип checkBox (который вернет ошибку, как вы это чувствуете). В учебнике, которое вы смотрите, показано, как динамически изменять параметры вопроса в отношении типа вопроса. Я проверил ваш код, и он работает, если тип вопроса вашей формы - checkBox.

code.gs

enter image description here

Лист:

enter image description here

Результат:

enter image description here

Надеется, что это помогает прояснить вопросы, вы я столкнулся.

EDIT

Было бы еще бы, учитывая, что вы объявили правильный тип для каждой переменной:

Пример кода:

var agentList = item.asListItem()//list option 
var foodList = item.asCheckboxItem()//checkbox option 

//code for checkbox 
if (item.getTitle() === "EVENTS"){ 

    var eventList = item.asCheckboxItem()//checkbox option 

    } 

//code for list 
if (item.getTitle() === "FOOD"){ 
    var foodList = item.asListItem()//list option 

    } 

Примечание: Используйте разные имена переменных, чтобы избежать конфликта. В качестве предложения создайте функцию, чтобы ваш код был чистым и простым в использовании. Добавьте комментарий, чтобы помочь вам отслеживать, что делает код.

+0

Привет, мистер Ребот. Спасибо за ваш вопрос. ответ: ваш код работает только в том случае, если в папке содержатся формы с вопросами о флажках. В моей папке содержатся как вопросы, так и вопросы по элементу списка вопросов - оба из которых я хотел бы обновить, используя тот же столбец электронной таблицы - если это возможно. – HarryHoe

+0

Я обновил свой ответ –

+0

Привет, мистер Ребот, см. Править выше – HarryHoe