我在Jason Jurotich的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);
}
}
雷博特先生 - 我试试
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行,文件&#34;代码&#34;)
也许它的代码之一?
答案 0 :(得分:0)
我认为您遇到的问题是您正在尝试将一个multipleChoice类型的问题变成一个复选框类型(这将返回您遇到的错误)。您已观看的教程显示了如何根据问题类型动态更改问题的选项。我已经测试了您的代码,如果您的表单的问题类型是checkBox,它就能正常工作。
code.gs
表:
结果:
希望这有助于澄清您遇到的问题。
您仍然会为每个变量声明正确的类型:
代码示例:
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
}